在INSERT语句中使用绑定变量

时间:2018-04-29 20:26:01

标签: oracle sqlplus

我需要向用户询问变量,在SELECT语句中使用该变量,然后在INSERT语句中使用该变量。现在我只是试图使用INSERT的变量来工作:

var num NUMBER(10)
exec num := &ExpNum
INSERT INTO ExpDet 
VALUES(num, &LineNum, &Descrip, &Amt, &HCode, &SubCode)

当我运行时,我收到错误说

  

未声明绑定变量'num'。

我在这里有正确的想法,还是我需要完全使用其他方法?

1 个答案:

答案 0 :(得分:0)

一个工作示例:

SQL> create table expdet
  2    (num number,
  3     linenum number,
  4     descrip varchar2(20),
  5     amt number,
  6     hcode number,
  7     subcode number);

Table created.

SQL> var num number
SQL> exec :num := &expnum
Enter value for expnum: 100

PL/SQL procedure successfully completed.

SQL> insert into expdet values
  2    (:num, &linenum, &descrip, &amt, &hcode, &subcode);
Enter value for linenum: 1
Enter value for descrip: 'a'
Enter value for amt: 1
Enter value for hcode: 1
Enter value for subcode: 1
old   2:   (:num, &linenum, &descrip, &amt, &hcode, &subcode)
new   2:   (:num, 1, 'a', 1, 1, 1)

1 row created.

SQL>