亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用jOOQ用自定義函數解析SQL字符串?

如何使用jOOQ用自定義函數解析SQL字符串?

FFIVE 2023-06-28 15:32:10
我正在嘗試使用jOOQ SQL 解析器解析SQL字符串。SQL包含如下自定義函數:select?dateadd([*]'20190809',?'yyyymmdd',?1)?from?table1它無法用任何方言來解析。我想獲取選擇字段并操作限制偏移子句。有什么辦法可以實現這一點嗎?
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

有點標準的DATEADD()函數(DATE_ADD()在某些 SQL 方言中)采用多種不同的形式,具體取決于特定的 SQL 方言。

jOOQ 的 SQL 解析器當前僅支持以下變體之一:DATEADD(<datepart>, <interval>, <date>),它對應于 SQL Server 中的語法(以及其他一些方言)。

應用于您的示例(假設您想添加一天),這將是:

select?dateadd(DAY,?1,?date?'2019-08-09')?from?table1

請注意,'20190809'在大多數方言中 不是正確的日期文字,這就是我將其替換為 的原因date '2019-08-09'。

另請注意,您可以使用jOOQ 翻譯器來嘗試這些東西。

假設您有自己的用戶定義存儲過程(也稱為 )DATEADD,那么您確實不走運,因為 jOOQ 的解析器嘗試解析上述表達式。使用任何其他名稱(例如DATEADD1),jOOQ 的解析器解析此表達式不會有任何問題。然而,您可能想要配置 jOOQ 如何處理未知函數。


查看完整回答
反對 回復 2023-06-28
  • 1 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號