2011-05-26 74 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);