2017-09-22 155 views
-1

我需要在上測試SQL查詢Oracle SQL Developer。 這些查詢包含時間戳文字格式Oracle SQL Developer中的時間戳文字

{ts 'yyyy-mm-dd hh:mm:ss.fff'}

的Oracle SQL Developer似乎並不接受這種語法,{導致錯誤ORA-00911的符號:無效字符

有什麼我可以做的嗎?

編輯

SQL編輯建議我{是不允許的。 我嘗試過使用另外兩個工具(DbVisualizerDBeaver),兩者均使用Oracle Thin驅動程序,所有工作都正常。

但是我仍然希望在Oracle SQL Developer中使用該語法,因爲它具有有趣的功能。 我必須測試的查詢不是由我編寫的,更改語法不是一個選項。

+0

該錯誤不是來自SQL Developer,而是來自Oracle本身。搜索「oracle timestamp literal」以獲取如何編寫文字的信息。 –

+0

SQL Developer只關閉JDBC驅動程序中的JDBC轉義處理,這就是您不能使用'{ts'yyyy-mm-dd hh:mm:ss.fff'}'的原因。在SQL Developer中沒有什麼可以做的。 Oracle不關心並聲稱它不是一個bug:https://community.oracle.com/message/14068970#14068970 –

+0

@a_horse_with_no_name你的是唯一有用的答案 –

回答

0

您可以使用CAST

select to_char(cast(sysdate as timestamp),'DD-MON-YYYY HH24:MI:SS.FF') from dual 
+0

'cast(sysdate as timestamp)'是無用的 –

0

使用實際SQL時間戳字面量:

TIMESTAMP 'yyyy-mm-dd hh:mm:ss.fff' 

你正在使用的是JDBC escape syntax,它受JDBC驅動程序支持,但不受Oracle數據庫本身支持。

+1

SQL Developer不支持JDBC轉義,因爲它關閉了JDBC驅動程序中的轉義處理。 –