回覆列表
  • 1 # 林時變數

    我做了3年多的plsql開發和sql開發,這個問題很典型,我從通俗理解角度說下,以便能快速理解應用吧:

    1、PL/SQL是一堆各種各樣sql的集合,把他們打成一個程式包,這個程式包執行在伺服器上,所以你就知道了,執行在伺服器上的資料庫後端程式(PL/SQL)執行效率很高。

    plsql舉例(通俗理解:包含了一堆邏輯的一堆sql,執行在伺服器端):

    if (day_count = 0) and (day_count_charge = 0) then

    select seq_s_checkout_log.nextval into checkoutlog_id from dual;

    insert into T_S_CHECKOUT_LOG

    values(checkoutlog_id,

    substr(to_char(systimestamp(6),"yyyymmddHH24missff6"),0,18),

    0,0,1);

    select seq_s_checkout_log.nextval into checkoutlog_id from dual;

    insert into T_S_CHECKOUT_LOG

    values(checkoutlog_id,

    substr(to_char(systimestamp(6),"yyyymmddHH24missff6"),0,18),

    0,0,2);

    end if;

    2、sql相對plsql功能單一,比如只執行查詢,就執行更新等等。而plsql是一個程式塊,裡面包含了邏輯判斷,比如:如果滿足什麼條件就執行查詢操作,把查詢結果賦予一個變數,當變數值達到100後將日誌計入日誌表等等。

    sql舉例(通俗理解:只執行插入或者更新,需要傳輸到伺服器端後才能執行):

    select max(nextval) from dual;

  • 中秋節和大豐收的關聯?
  • 為什麼要重灌系統?碰到系統問題就不能採取其他辦法嗎,你怎麼看?