我正在編寫plsql腳本,並且當我使用ROW_NUMBER()OVER(PARTITION BY ...: 這是給我這個錯誤我的代碼行:不一致的數據類型:預期 - 有CLOB爲什麼我在執行這個腳本時遇到這個錯誤(plsql oracle)
這是我的代碼:
CREATE OR REPLACE VIEW "VW_APP_PU_LOCATION_CLUSTER" ("ID", "BATCH_ID", "PRODUCTION_SYSTEM_ID", "CODE", "URGENCY", "CURRENT_STATE", "VALUE", "ELEMENT_ID","VIEW_ID") AS
SELECT app.id AS id
, app.batch_state AS batch_id
, app.production_system_id AS production_system_id
, atp.code AS code
, app.urgency_code AS urgency
, app.current_state AS current_state
, dbms_lob.substr(el.value, 4000, 1) AS value
, el.element_id AS element_id
, ROW_NUMBER() OVER (PARTITION BY LOWER(el.value) ORDER BY loc.code) AS view_id
FROM application app
CROSS JOIN application_type atp
CROSS JOIN location loc
CROSS JOIN application_order ord
LEFT JOIN data_element el ON (app.id = el.application_id AND el.element_id = isexistsparam('Pu Generation','SORTING_DATA_ELEMENT'))
WHERE app.application_type_id = atp.id
AND app.location_id = loc.id
AND app.application_order_id = ord.id
AND app.current_state in
(
select distinct sd.state
from process_state_definition psd,
state_definition sd,
application_type appType,
application appli,
process_definition pd
Where
((appType.code is null)or (appType.id = appli.application_type_id AND sd.id = psd.state_definition_id)
AND psd.application_type_id = appType.id
AND psd.process_definition_id = pd.id
AND psd.state_type='START'
AND pd.name = 'Pu Generation')
)
ORDER BY loc.code asc,
CASE WHEN isexistsparam('Pu Generation', 'SORTING_DATA_ELEMENT') != -1
THEN dbms_lob.substr(el.value, 4000, 1) ELSE NULL
END
, ord.date_ordered asc
, app.application_number asc;
有人可以給我解釋一下什麼是錯的ROW_NUMBER()函數感謝
這些CROSS連接的目的是什麼(與WHERE子句拼接在一起)? – wildplasser