插入到表中,其中一列值作为选择查询

时间:2013-09-26 04:01:30

标签: sql oracle stored-procedures

我的代码是这样的

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 然后我想看到数据库中的值为 从表中选择appCode,pkid,其中party_id ='123'

但那并没有发生,而是如此 从表中选择appCode,pkid,其中party_id = 123

sugestions please。

2 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

尝试以下方法

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')