在Oracle PL / SQL中我们可以动态插入批量数据吗?

时间:2015-02-16 08:43:48

标签: oracle plsql

我需要通过过程插入批量数据,但表和列将是动态的。 假设一个帐户有一个表,并且它们具有已配置的列,类似地,可以有1000个这样的帐户,因此将有1000个数字表及其列。

我们如何在一个程序中实现这一目标?

1 个答案:

答案 0 :(得分:0)

一个非常原始的例子,让你感受到:

CREATE OR REPLACE PROCEDURE yourProcedure (tableName VARCHAR2, 
                             colName1 VARCHAR2, colName2 VARCHAR2, colName3 VARCHAR2) IS
   v_column VARCHAR2(30);
   sql_stmt  VARCHAR2(200);
BEGIN
  sql_stmt := 'SELECT ' || colName1 || ', ' || colName2 || ', ' colName3 || ' FROM ' || tableName 
  EXECUTE IMMEDIATE sql_stmt;
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE ('Node Data Found');
END yourProcedure;

如果您事先不知道您需要选择的列,则可以传递一列而不是三列。 您还可以将变量绑定到添加“USING”子句的select语句。请参阅文档示例:http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/dynamic.htm#CHDGJEGD