08动态Sql

来源:互联网 发布:经传全套公式源码 编辑:程序博客网 时间:2024/06/01 23:33
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 /truncateDCL:grant/revokeDML:insert/update/delete/selectTCL:commit/rollback;*/