我做了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);
0,0,2);
end if;
2、sql相對plsql功能單一,比如只執行查詢,就執行更新等等。而plsql是一個程式塊,裡面包含了邏輯判斷,比如:如果滿足什麼條件就執行查詢操作,把查詢結果賦予一個變數,當變數值達到100後將日誌計入日誌表等等。
sql舉例(通俗理解:只執行插入或者更新,需要傳輸到伺服器端後才能執行):
select max(nextval) from dual;
我做了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;