select * from aaa where aa = &ts
当运行这个语句的时候oracle会提示要求你输入变量ts,这个时候你手工填写一个数据后就可以运行这个语句,我想知道开发程序的时候如何通过程序直接把一个数据给这个“&ts”变量。

解决方案 »

  1.   

    如果用程序的话,不用&.
    直接用parameter可以使用.
      

  2.   

    SQL*PLUS环境输入'&字符'的方法     2002-05 余枫

    我们知道在SQL*PLUS默认环境里会把'&字符'当成变量来处理.  有些时候我们也需要在SQL>的符号下输入'&字符', 只需要改变SQL*PLUS下一个环境变量define即可.

       SQL> set define off; 是把默认的&绑定变量的功能取消, 可以把'&字符'当成普通字符处理 SQL> set define on; 打开&绑定变量的功能, &后面的字符串当变量使用. SQL> show define; 查看当前SQL*PLUS的define状态

    举例说明:
            ---------------------------------------------------------------
    SQL> CREATE TABLE TEST3 ( 
       ID    NUMBER (2)    PRIMARY KEY, 
       NAME  VARCHAR2 (20));

    SQL> show define;
    define "&" (hex 26)  

    SQL> insert into test3 values(1,'sgs&a&n');
    Enter value for a: abc
    Enter value for n: 456
    old   1: insert into test3 values(1,'sgs&a&n')
    new   1: insert into test3 values(1,'sgsabc456') 1 row created. SQL> commit; Commit complete. SQL> set define off; SQL> insert into test3 values(2,'sgs&a&n');

    1 row created. SQL> commit; Commit complete. SQL> select * from test3;        ID NAME
            -- --------------------
             1 sgsabc456
             2 sgs&a&n
      

  3.   

    16:05:03 SQL> create table t1(a varchar(10));表已创建。已用时间:  00: 00: 00.31
    16:05:44 SQL> insert into t1 values ('aa&bb');
    输入 bb 的值:  5
    原值    1: insert into t1 values ('aa&bb')
    新值    1: insert into t1 values ('aa5')已创建 1 行。已用时间:  00: 00: 00.00
    16:06:12 SQL> insert into t1 values ('aa'||chr(38)||'bb');已创建 1 行。已用时间:  00: 00: 00.15
    16:06:16 SQL> select * from t1;
    aa5
    aa&bb已用时间:  00: 00: 00.15
      

  4.   

    如果用程序的话,不用&.
    直接用parameter可以使用.不是很明白请赐教!