【发布时间】:2013-12-09 18:34:12
【问题描述】:
请您检查一下并告诉我为什么会出错?它应该怎么看?我不知道这里有什么问题。我需要在一个函数中创建一个表,并在同一个函数中将数据插入到这个表中:
create or replace
function new_tab ( pyt IN varchar2) return number
IS
a number;
b varchar2(20);
begin
a:= ROUND(dbms_random.value(1, 3));
b:='example';
-- This works perfect
execute immediate 'CREATE TABLE create_tmp_table'|| a ||'(i VARCHAR2(50))';
-- Here`s the problem
execute immediate 'insert into create_tmp_table'||a|| 'values ('|| b ||')';
exception
when others then
dbms_output.put_line('ERROR-'||SQLERRM);
return 0;
end;
我的结果是:
ERROR-ORA-00926: missing VALUES keyword. Process exited.
错在哪里?
【问题讨论】:
-
输入了一个没有关键字 VALUES 或 SELECT 的 INSERT 语句。 VALUES 子句或 SELECT 子查询必须跟在 INSERT INTO 子句之后。
-
我在 ||a|| 之后看到了单词 values。
标签: sql plsql insert execute-immediate