【问题标题】:Insert into table with one column value as select query插入一列值作为选择查询的表
【发布时间】:2013-09-26 04:01:29
【问题描述】:

我的代码是这样的

insert into table (A,B,C,D) values
('abb','select appCode,pkid from table where party_id='||party_id,sysdate,user);

这里的party_id是varchar,它作为存储过程中的IN子句出现,所以如果partyid在存储过程中作为123出现 然后我想查看数据库中的值 select appCode, pkid from table where party_id='123'

但这并没有发生,而是按照 select appCode, pkid from table where party_id=123

请指教。

【问题讨论】:

  • 首先,你有 5 个值被插入到一个 4 列的表中!
  • 所以您正尝试将 SQL SELECT(作为字符串)放入列 B 并且您需要知道如何引用 party_id?哪个数据库?
  • @Nadeem_MK:请再数一遍,VALUES 中有四个值,而不是五个。
  • 您使用的是什么 RDMS? SQL Server、MySQL、Oracle?
  • mu 太短了......是的,没错......这就是我想要的......它的 Oracle。我正在使用存储过程来做到这一点

标签: sql oracle stored-procedures


【解决方案1】:

试试这个

insert into table (A,B,C,D) values
('abb'
,'select appCode,pkid from table where party_id=''' || party_id || ''''
,sysdate
,user);

【讨论】:

    【解决方案2】:

    试试下面的方法

    CREATE TABLE tab1
    (
        t1   VARCHAR2 (100),
        t2   VARCHAR2 (100),
        d1   DATE,
        t3   VARCHAR2 (100)
    );
    
    CREATE OR REPLACE PROCEDURE test_proc (param user_objects.object_type%TYPE)
    IS
    BEGIN
     INSERT INTO  tab1 (t1,t2,d1,t3) values
              ('abc','SELECT object_id  
                FROM     user_objects
              WHERE     object_type = '''||param||'''',SYSDATE,'scott');
    END;
    

    并执行程序

    EXEC test_proc('TABLE')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2021-11-01
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多