【发布时间】:2018-08-04 17:47:37
【问题描述】:
我目前有以下脚本用于将一些虚拟数据插入我的一张表中以进行测试。
我可以调用它并传递我想要的条目数。效果很好。
现在的问题是某些数据不起作用。CRecordID 应该在所有三行(12、17、19)中具有相同的值。
有办法存档吗?
WHENEVER SQLERROR EXIT
PROMPT inserting
INSERT INTO MySchema.MyTable (MYRECORD, TMSTAMP, SHORTRECORD, CRecordID) (
SELECT
'<MYRECORD>
<TimeStamp>'||TO_CHAR(SYSDATE,'DD.MM.YY')||' '||to_char(to_date('2000-01-01', 'yyyy-mm-dd')+dbms_random.value(1,1000), 'HH24:MI:SS')||'</TimeStamp>
<User>Test_User_1</User>
<Application>Application1</Application>
<Action>Dummy action text</Action>
<INFO>dummy info text</INFO>
<CRecordID>'||'CID_'||sys_guid()||'</CRecordID> -- line 12
</MYRECORD>',
to_date(SYSDATE,'DD.MM.YY'),
'<SHORTRECORD>
<User>Test_User_1</User>
<CRecordID>'||'CID_'||sys_guid()||'</CRecordID> -- line 17
</SHORTRECORD>',
'CID_'||sys_guid() -- line 19
FROM DUAL connect by level <= &1
);
COMMIT;
PROMPT inserting done
注意:数据库是 Oracle DB。
【问题讨论】:
-
无关:我宁愿使用
TRUNC(SYSDATE),而不是to_date(SYSDATE,'DD.MM.YY')。 -
对;将
TO_DATE函数应用于SYSDATE是一种愚蠢,它无论如何都会返回DATE数据类型。
标签: sql plsql sql-insert