我是甲骨文的新手。有以下问题。尝试执行以下查询时:
INSERT ALL
WHEN (s.dwsact = 'I') THEN
INTO TARGET1 (ID,VAL,DELETED_FLAG,VALIDFROM,VALIDTO)
VALUES (s.ID, s.VAL, 'N', '11.09.17', to_date('59991231','YYYYMMDD'))
WHEN (s.dwsact = 'U') THEN
INTO STG.TMP_TABLE_FOR_UPDATE (PROWID)
VALUES (t.ROWID)
WHEN (s.dwsact = 'D') THEN
INTO STG.TMP_TABLE_FOR_DELETE (PROWID)
VALUES (t.ROWID)
SELECT t.ROWID, s.ID, s.VAL FROM SOURCE1 s JOIN TARGET1 t ON s.ID = t.ID
我得到了:
ORA-00904 "T"."ROWID": invalid identifier
表格如下:
Source1的
ID VAL DWSACT
---------- ---------- ------
8 10 I
5 4 D
5 3 U
Target1为空,包含ID,VAL,DELETED_FLAG,VALIDFROM,VALIDTO列。 TMP_TABLE_FOR_UPDATE和TMP_TABLE_FOR_DELETE只有一列 - PROWID。
请,任何想法为什么?已经在这个问题上打破了我的头脑。
答案 0 :(得分:0)
你能尝试一下吗(它对我有用)?我是凭经验做到的,并观察到在Oracle文档中他们不使用表限定符来表示值。而且,我使用别名ROW_ID更改了ROWID。
我也在SELECT中添加了s.DWSACT。
df = df.apply(lambda col: col.map('{:,.2f}'.format) if col.name != 'Counterparty' else col)