我正在尝试向oracle db中的表进行插入。但是我想发送一个列表,其中包含要插入表中的数据。我已经为SQL完成了此操作,创建了一种表类型,我想将其用作过程中的参数,就像这样:
CREATE TYPE budget IS TABLE OF LCH_Budget%ROWTYPE
过程是:
CREATE OR REPLACE PROCEDURE ORA.INSERT_BUDGET (
budgetParam budget) AS
BEGIN
INSERT INTO ORA_BANK.LCH_CHEQUES_ESCANEADO(
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA,
LCH_DATA)
SELECT * FROM budgetParam;
END;
/
这是用于ORACLE的,因此在SQL中,通过Java发送该参数,我只需要构建一个Datatable即可设置具有各自类型的字段,就像这样:
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.INTEGER);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.INTEGER);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.INTEGER);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
dataTable.addColumnMetadata("LCH_DATA", java.sql.Types.VARCHAR);
所以我想复制这种为Oracle发送参数的方法,但是Oracle和SQL Server中的类型不同,我一直在寻找用于连接的jdbc上的类型,但是找不到它。
您知道替代方法吗?事实是,它将要存储大量数据,所以我不想为需要插入的每条数据从程序中调用过程。感谢您的帮助。