declare
v_sql varchar2(100);
v_count number;
v_username varchar2(100);
begin
--delete From T_Userinfo where userid = 5;
--1:最簡單的動態SQL
v_sql := 'Delete From T_Userinfo where userid = 5';
execute immediate v_sql;
commit;
--2:動態SQL語句中帶into.
select count(1) into v_count From T_Userinfo;
dbms_output.put_line('編譯SQL = ' || v_count);
v_sql := 'select count(1) From T_Userinfo where usersex = 1';
execute immediate v_sql
into v_count;
dbms_output.put_line('動態SQL = ' || v_count);
--3:動態SQL中帶命令參數
v_username := '%a%';
v_sql := 'Select count(1) From T_Userinfo where username like :v_username';
execute immediate v_sql
into v_count
using v_username;
dbms_output.put_line('命名參數SQL = ' || v_count);
--4:SQL語句的拼湊
--5:可以執行DDL和DCL語句。
--drop table t_a;
v_sql := 'drop table t_a';
execute immediate v_sql;
end;
/*
DDL:create/drop/alter /truncate
DCL:grant/revoke
DML:insert/update/delete/select
TCL:commit/rollback;
*/
08動態Sql
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.