是否允许使用带有变量的插入查询?
像: 插入var_1(col1_Var_Name,col2_vAr_Name) 值(var_3,var_4)
答案 0 :(得分:1)
表和列名称不能作为变量传递给语句。实现您似乎要做的事情的一种方法是将语句构建为字符串,然后动态执行它,如:
DECLARE
strStmt VARCHAR2(2000);
strTable VARCHAR2(30) := 'SOME_TABLE';
strCol1 VARCHAR2(30) := 'COL1';
strCol2 VARCHAR2(30) := 'COL2';
strCol3 VARCHAR2(30) := 'COL3';
nVal1 NUMBER := 42;
strVal2 VARCHAR2(30) := 'HELLO';
nVal3 NUMBER := 100;
BEGIN
strStmt := 'INSERT INTO ' || strTable ||
'(' || strCol1 || ',' ||
strCol2 || ',' ||
strCol3 || ')' ||
' VALUES (' ||
nVal1 || ',' ||
'''' || strVal2 || ''',' ||
nVal3 || ')';
EXECUTE IMMEDIATE strStmt;
END;
分享并享受。
答案 1 :(得分:0)
DECLARE
TYPE type_name IS TABLE OF
(column_type |
variable%TYPE |
table.column%TYPE
[NOT NULL]
INDEX BY BINARY INTEGER;