我有两个问题。
PL / SQL下面不起作用。我想将输出存储到varable test1和test2中。它说没有找到ORA-00923:FROM关键字。不确定有什么问题
DECLARE
file_id NUMBER(10) NOT NULL :=5;
test1 varchar(100);
test2 varchar(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('File Id: ' || file_id);
SELECT table_name
INTO test1,
(CASE owner
WHEN 'SYS' THEN 'The owner is SYS'
WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
END)
INTO test2
FROM all_tables
WHERE rownum <= 1;
END;
在PL / SQL中,如果我只使用没有into子句的select语句,它就不起作用了。这是我需要使用的规则吗?下面的一个不起作用。如果我想从PL / SQL程序假脱机输出,我是否需要将列的输出存储到变量中并执行dbms_output?
DECLARE
file_id NUMBER(10) NOT NULL :=5;
test1 varchar(100);
test2 varchar(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('File Id: ' || file_id);
SELECT table_name,
CASE owner
WHEN 'SYS' THEN 'The owner is SYS'
WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
END
FROM all_tables;
END;
答案 0 :(得分:7)
在PL / SQL查询中只需要一个INTO子句,例如:
SELECT table_name, CASE owner WHEN bla bla ... END
INTO test1, test2
FROM all_tables;