记录关于存储过程动态SQL及传参

记录关于存储过程动态SQL及传参
参考
http://t.csdn.cn/rWuko
http://t.csdn.cn/V5asX

CREATE OR REPLACE PROCEDURE "SYSDBA"."DMDB_SQL"("NAME" IN VARCHAR(100),"XB" IN VARCHAR(100),"BH" IN VARCHAR(100))
AUTHID DEFINER       as  
--创建存储过程,给当前会话设置备注,查询会话信息
v_1 varchar2(100);
v_2 varchar2(100);
v_3 varchar2(100);
str_sql varchar2(500); 
begin
v_1:="NAME";   --传参相关
v_2:="XB";
v_3:="BH";

str_sql := 'CREATE
        TABLE "SYSDBA"."TABLE003"
        (  "SESS_ID001" VARCHAR2(50),
            "NAME"       VARCHAR2(50),
              "XB"      VARCHAR2(50),
                "BH"      VARCHAR2(50)     )';   --创建临时表
  execute immediate str_sql ;   --立即执行str_sql  
 str_sql := 'INSERT INTO table003(SESS_ID001,NAME,XB,BH)  VALUES ((select SESS_ID from v$sessions where sess_id = DBMS_SESSION.UNIQUE_SESSION_ID),:1, :2,:3)'; 
  EXECUTE IMMEDIATE str_sql USING v_1, v_2,v_3;    --传参相关
  str_sql := 'select *  FROM table003 a,v$sessions s where a.SESS_ID001 =s.SESS_ID';   --查询结果
  execute immediate str_sql ;   --立即执行str_sql 
     str_sql  := 'drop table  table003 ';    --删除临时表
  execute immediate str_sql ;   --立即执行str_sql
commit;
end;

--    call "SYSDBA"."DMDB_SQL"('张三','男','编号1');

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值