PLSQL中的SQL應用

PL/SQL 中 DML 與 TCL 的使用
過程化語言擴展:if\case\loop\while\for
sql:DML\DCL\DQL\DDL\DCL;

DQL 在 PL/SQL 中的使用

本地動態 SQL
普通本地動態sql語法:
EXECUTE IMMEDIATE 'dynamic_sql'
eg:
declare
v_sql varchar2(64);
begin
v_sql='create table test(id number,name varchar(12))';

execute immediate v_sql;
end;

帶有輸入的本地動態sql語法:
EXECUTE IMMEDIATE 'DYNAMIC_SQL'
USING BIND_ARGUMENT
eg:
declare
v_id number:=12;
v_name varchar2(12):='aa';
v_sql varchar2(64);
begin
v_sql='insert into test values(:1,:2)';
execute immediate v_sql;
using v_id,v_name;
end;

帶有輸入輸出的本地動態sql語法:
EXECUTE IMMEDIATE 'DYNAMIC_SQL'
USING BIND_ARGUMENT
RETURNING|RETURN INTO BIND_AEGUMENT
eg:
declare
v_id number:=12;
v_name varchar2(12):='aa';
v_sql varchar2(64);
v_outid number;
begin
v_sql='insert into test values(:1,:2) returning id into :3';
execute immediate v_sql;
using v_id,v_name;
returning into v_outid;

dbms_output.put_line(v_outid);
end;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章