為什么TO_CHAR(rln.FECHA_CONSULTA,'dd-MM-yyyy')AS'FECHA_CONSULTA'我在執行這個腳本時會失敗?
SELECT
rln.CIF_NIF,
rln.MOTIVO,
TO_CHAR(rln.FECHA_CONSULTA,'dd-MM-yyyy') AS 'FECHA_CONSULTA' --fail here
FROM RASTRO_LISTA_NEGRA rln
WHERE rln.FECHA_CONSULTA >= TO_DATE (CONCAT(TO_CHAR(sysdate-1,'dd/MM/yyyy'),'08:00:00'), 'DD/MM/YYYY HH24:MI:SS')
我正在使用甲骨文
uj5u.com熱心網友回復:
單引號用于字串文字。不適用于別名。
所以改變這個
AS 'FECHA_CONSULTA' --fail here
對此
AS "FECHA_CONSULTA" --alright
或這個
AS FECHA_CONSULTA --okidoki
此外,該WHERE條款可以簡化
WHERE rln.FECHA_CONSULTA >= (TRUNC(SYSDATE-1) INTERVAL '08:00' HOUR TO MINUTE)
uj5u.com熱心網友回復:
這基本上是一個錯字:單引號用于文字值,雙引號用于識別符號。
從檔案:
...您用帶引號的識別符號或非帶引號的識別符號表示物件的名稱。
- 帶引號的識別符號以雙引號 (") 開頭和結尾。如果使用帶引號的識別符號命名架構物件,則在參考該物件時必須使用雙引號。
- 未加引號的識別符號沒有被任何標點符號包圍。
所以AS 'FECHA_CONSULTA'應該是AS "FECHA_CONSULTA",或者只是AS FECHA_CONSULTA因為在這種情況下不需要參考別名識別符號。
但是你也可以簡化這個:
TO_DATE (CONCAT(TO_CHAR(sysdate-1,'dd/MM/yyyy'),'08:00:00'), 'DD/MM/YYYY HH24:MI:SS')
到:
TRUNC(sysdate-1) INTERVAL '8' HOUR
或者
TRUNC(sysdate-1) (8/24)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388841.html
上一篇:將多行(2列)旋轉為一行
