0
我有以下表結構:甲骨文 - 子查詢返回多個行
HSM
HSM_EXC_CODE Y VARCHAR2(60)
HSM_INSTR_CODE Y VARCHAR2(60)
HSM_ISIN Y VARCHAR2(60)
HSM_VWD_TICKERSYMBL Y VARCHAR2(80)
TENFORE_EXCHANGE_MAP
HS_MARKET Y VARCHAR2(40)
TF_EXCHANGE Y VARCHAR2(40)
TFV
TFE_ID Y NUMBER(22)
TFE_VSE_CODE Y VARCHAR2(1000)
不同的TFE_ID可以有相同的TFE_VSE_CODE!我想這是我在下面的更新查詢中缺少的。
VSD
VSD_ON Y VARCHAR2(160)
VSD_ISIN Y VARCHAR2(15)
中的表連接類似如下:
TENFORE_EXCHANGE_MAP.HS_MARKET = HSM.HSM_EXC_CODE
TENFORE_EXCHANGE_MAP.TF_EXCHANGE = TFV.TFE_ID
我試圖填補hsm_isin和hsm_on領域。爲了達到目標,我試圖從hsm.hsm_exc_code
生成名稱。 tfv.tfe_vse_code
。但我做錯了,因爲我從主題中得到錯誤。這是我曾嘗試:
UPDATE hsm
SET hsm_isin =
(SELECT distinct vsd.vsd_isin
FROM vsd, tfv, TENFORE_EXCHANGE_MAP
WHERE vsd.vsd_on = hsm.hsm_instr_code || '.' || tfv.tfe_vse_code
AND hsm.hsm_exc_code = TENFORE_EXCHANGE_MAP.HS_MARKET
AND TENFORE_EXCHANGE_MAP.TF_EXCHANGE = tfv.tfe_id)
,hsm.hsm_vwd_tickersymbl =
(SELECT distinct vsd.vsd_on
FROM vsd, tfv, TENFORE_EXCHANGE_MAP
WHERE vsd.vsd_on = hsm.hsm_instr_code || '.' || tfv.tfe_vse_code
AND hsm.hsm_exc_code = TENFORE_EXCHANGE_MAP.HS_MARKET
AND TENFORE_EXCHANGE_MAP.TF_EXCHANGE = tfv.tfe_id);
表中的「Y」是什麼意思?不要使用隱式連接語法(逗號分隔的'FROM'子句) - 總是顯式聲明你的連接。有可能獲得一些樣本數據嗎?我們是否也可以得到確切的錯誤代碼/消息?另外,應該可以將兩個子查詢合併爲一個(至少在一般情況下,不確定Oracle是否具體)。 –