绑定变量(bind variables)、替换变量(substitution variables)

本文介绍了SQL与PL/SQL中两种变量的使用:替换变量和绑定变量。替换变量主要用于SQL和PL/SQL与用户的交互,如在SQL语句和PL/SQL块中定义并使用。而绑定变量则用于动态SQL、游标、游标变量以及SQLPLUS环境中的变量交互,确保数据类型传递的准确性。文章详细阐述了两种变量的声明、使用方法及其在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、替换变量(主要用来 sql、plsql与用户的交互,可以运行时输入、也可提前输入)

      注意:只替换变量,如果是字符,请放在单引号内,如‘&1’;

      a 、使用环境

            sql语句中:如 select * from site where site_no='&1';

            pl/sql块中使用,如:

            DECLARE
            v_begin_time DATE := to_date('&1', 'yyyymmdd');
            v_end_time   DATE := to_date('&2' || ' 23:59:59', 'yyyymmdd hh24:mi:ss');
           BEGIN

           。。。。。。

           END;

     b 、两种使用:

            一种是位置参数&1,&2,对应sqlplus输入时的参数位置;

            一种是和一般的变量一样,任何名字都行。&a

     c、声明方式:

          accept  v_name number promt 请输入:         ----是变量,数据类型自己控制

           define v_name duqiang;      ----是变字符串行常量

 2、绑定变量(为占位符,只要用在动态sql、游标、游标变量、sqlplus环境中变量与plsql之间的交互)

     a 、动态sql(且以外面引用的变量的数据类型传到sql中去)

          execute immediate ‘update site set site_name = :a where site_id= :b returning site_name into :c’

            using  v_a ,v_b, out v_c;

     b、游标变量

          open cursor for  ‘select site_id from site where site_id = :a and create_date = :b’ ;

           fetch cursor into v_site_id;

     c、sqlplus环境中变量与plsql之间的交互

          (一种特殊情况吧,块中不是动态sql的话,变量前面:即使用sqlplus环境变量)

         sql> variable  v_a number;

         在sqlplus环境中的变量如果要在块中可见(赋值、读取),只要在变量前面加 :v_a 就好了。

        sql> begin  select id  into :i : from  site end;

    d、绑定变量声明在sqlplus ,赋值在plsql ,返回给sqlplus

          sql> variable  a number

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值