2011-05-26 72 views
2

我需要一个字符串作为输入的程序PL/SQL如何使用子查询和参数INSERT

CREATE PROCEDURE testing(MYVAR VARCHAR) AS 
BEGIN 
    INSERT INTO mytable VALUES ((SELECT id FROM articles), MYVAR); --WRONG 

插入查询是错误的,基本上是表mytable的只有2场:

idarticles | variable 

通过子查询,我想选择所有article ID,并将它们与MYVAR arg作为一对插入。

我该怎么做? 感谢

+0

这会给你带来重复的ID值:你为什么要这样做?如果ID是表的主键,它是没有意义的,无论如何主键约束会抛出。如果ID不是表的主键,它为什么叫ID? – APC 2011-05-26 20:34:21

+0

@apc:acutally子查询有一个WHERE子句生成的一些其他参数,使这个过程有意义:) – dynamic 2011-05-26 20:35:19

回答

5

试试这个:

INSERT INTO mytable (idarticles,variable) 
    SELECT id, myvar FROM articles 

这是与包括其他任何你SELECT声明变量或常量,或文字:

SELECT 100, 'Foo', ID FROM Customer 
+0

你打我5秒;) – 2011-05-26 20:30:18

+2

@a_horse:phew!走出雨来感觉很好! :D它终于发生了,这次是最快的枪:D – 2011-05-26 20:31:19

+0

抱歉现在不能测试,会尽快测试 – dynamic 2011-05-26 20:33:00

1

试试这个:

INSERT INTO mytable (SELECT id, MYVAR FROM articles);