【问题标题】:Using a bind variable in an INSERT statement在 INSERT 语句中使用绑定变量
【发布时间】:2018-04-29 20:26:01
【问题描述】:

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

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

当我运行这个时,我得到一个错误提示

未声明绑定变量“num”。

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

【问题讨论】:

    标签: oracle sqlplus


    【解决方案1】:

    一个工作示例:

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2017-11-09
      • 2023-03-06
      相关资源
      最近更新 更多