【发布时间】:2017-04-20 20:27:42
【问题描述】:
我希望使用 jruby 填充数据库。我按照here 的说明进行操作,并且我的更新和查询运行良好。我的问题是数据库的初始填充。初始填充是使用 sqlplus 调用以下 sql 脚本完成的:
CREATE OR REPLACE FUNCTION createLcid RETURN varchar2 IS
hexval varchar2(64);
digit number;
hexdigit char;
BEGIN
FOR i IN 1..32 loop
digit := TRUNC(DBMS_RANDOM.value(1,16));
if digit > 9 then
hexdigit := chr(ascii('a') + digit - 10);
else
hexdigit := to_char(digit);
end if;
hexval := hexval || hexdigit;
end loop;
return hexval;
END createLcid;
/
BEGIN
FOR i IN 1..50 LOOP
INSERT INTO as_dcm_testing VALUES (createLcid(), to_char(systimestamp, 'YYYY-MM-DD HH24:MI:SS.FF1'), TRUNC(DBMS_RANDOM.value(100000,999999999)), 'VL' || to_char(TRUNC(DBMS_RANDOM.value(1,9))));
END LOOP;
COMMIT;
END;
/
PROMPT Complete
PROMPT *************************************************************************
EXIT;
我想用文档中的 OracleConnection 调用替换 sqlplus 调用,但作为示例中的 prepare_call 或 execute_query 运行似乎不会更新表。运行 sqlplus 可以。
我试过了 以文本形式读取文件并将其传递给 prepare_call/execute_update 和 execute_query(无错误 - 表未更新), 以文本形式读入文件,将其拆分为 ;并将数组中的每一行传递给 prepare_call/execute_update 和 execute_query (没有错误 - 表未更新), 在主类中创建一个辅助调用,其中包含 sql 文件中的内容,并将其传递给 prepare_call/execute_update 和 execute_query(无错误 - 未更新表)。
任何想法我做错了什么或有人使用 jdbc 驱动程序有不同的方法?
一个
【问题讨论】: