PL/SQL如何使用子查询和参数进行INSERT

dyn*_*mic 3 oracle plsql

我有一个需要字符串作为输入的过程

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

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

idarticles | variable
Run Code Online (Sandbox Code Playgroud)

使用子查询我想选择所有article ID并将它们作为一对与MYVAR arg一起插入.

我怎样才能做到这一点?谢谢

p.c*_*ell 5

试试这个:

  INSERT INTO mytable (idarticles,variable)
    SELECT id, myvar FROM articles
Run Code Online (Sandbox Code Playgroud)

它与您的SELECT语句中包含任何其他变量或常量或文字相同:

 SELECT 100, 'Foo', ID FROM Customer
Run Code Online (Sandbox Code Playgroud)

  • @a_horse:p!从雨中感觉很好!:D终于发生了,这次是最快的枪:D (2认同)
  • @yes,是的,您可以在SELECT语句中包含任何变量或常量. (2认同)