成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Polardb運(yùn)算符優(yōu)化應(yīng)用案例

IT那活兒 / 3154人閱讀
Polardb運(yùn)算符優(yōu)化應(yīng)用案例
[
應(yīng)用報(bào)錯(cuò)
]


org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallback;

badSQL grammar [SELECT TO_CHAR(TRUNC(SYSDATE,dd)-TRUNC(op_time,dd))overday FROM tb_xxx_xxxx WHERE caseno=? ];

nestedexception is com.aliyun.polardb.util.PSQLException:

ERROR:function to_char(interval) does not exist

Hint:No function matches the given name and argument types. You might needto add explicit type casts.


--直連檢查sql報(bào)錯(cuò)問題

polardb執(zhí)行


oracle執(zhí)行


報(bào)錯(cuò)信息需要類型轉(zhuǎn)換,那就轉(zhuǎn)換一下

告知開發(fā)側(cè)看能否更改代碼解決。


過了一會(huì),開發(fā)發(fā)來(lái)截圖,一個(gè)模塊就有400多,工作量太大,影響進(jìn)度,看來(lái)還得換其他辦法。

[
解決思路
]


先看看查詢實(shí)現(xiàn)原理:


1.trunc后返回類型是timestampwithout time zone


2.兩個(gè)相減返回值interval類型


3.查看to_char輸入和輸出返回類型


通過上面3步可以明確知道之前修改新加DD實(shí)現(xiàn)的邏輯,但是應(yīng)用側(cè)整改工作量太大,不現(xiàn)實(shí)。


既然第3步工作量大,實(shí)現(xiàn)不了,那就在第1步或第2步上做做文章。


[
解決步驟
]


嘗試修理第2步:

減號(hào)-的左右都是timestampwithout time zone,返回值類型就是interval


到這就明了了,自己定義一個(gè)函數(shù)timestamp_mi,讓他返回值不是interval,而是text就ok啦。



下面開始解決問題:


1.日期格式相減功能實(shí)現(xiàn)的sql

SELECT(date_part(epoch,sysdate)-date_part(epoch,sysdate-10))/86400,pg_typeof(date_part(epoch,sysdate)-date_part(epoch,sysdate-10)/86400);


2.創(chuàng)建上面實(shí)現(xiàn)功能的sql對(duì)應(yīng)的函數(shù)

語(yǔ)法如下:


createor replace function ywjhxt.timestamp_mi (timestamp without time zone,timestamp without time zone) returns double precision as $$

SELECT(date_part(epoch,$1)-date_part(epoch,$2))/86400;

$$language sql;


3.創(chuàng)建新的運(yùn)算符實(shí)現(xiàn)邏輯

createoperator ywjhxt.-(leftarg=timestamp without timezone,rightarg=timestamp without timezone,procedure=ywjhxt.timestamp_mi);




4.檢驗(yàn)是否實(shí)現(xiàn)功能


5.意外情況處理

奇了怪了,為啥沒生效。繼續(xù)分析,

查看操作符’-’信息:

selectoprname,oprleft::regtype,oprright::regtype,oprresult::regtype,oprcodefrom pg_operator where oprname=- andoprleft::regtype::text=timestamp without time zone andoprright::regtype::text=timestamp without time zone;  



原來(lái)有兩個(gè)timestampwithout time zone的值進(jìn)行相減時(shí),有兩個(gè)實(shí)現(xiàn)方式,為啥他選了第一個(gè)呢?


嘗試去官方文檔找答案,還真有。。。

再嘗試一下,發(fā)現(xiàn)得到了想要的結(jié)果,但是這不符合需要啊,還是要改動(dòng)應(yīng)用代碼。


繼續(xù)往下翻文檔,又有驚喜。

setsearch_path="$user", public,pg_catalog;



至此,問題徹底解決。本次分享到此結(jié)束,下次再見。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130154.html

相關(guān)文章

  • 達(dá)摩院首席數(shù)據(jù)庫(kù)科學(xué)家李飛飛:云原生新戰(zhàn)場(chǎng),我們?nèi)绾伟盐障葯C(jī)?

    摘要:李飛飛花名飛刀,阿里巴巴集團(tuán)副總裁,高級(jí)研究員,達(dá)摩院首席數(shù)據(jù)庫(kù)科學(xué)家,阿里云智能事業(yè)群數(shù)據(jù)庫(kù)產(chǎn)品事業(yè)部負(fù)責(zé)人,杰出科學(xué)家。是阿里云的云原生數(shù)據(jù)庫(kù),目前已有非常深厚的技術(shù)積累。 阿里妹導(dǎo)讀:云計(jì)算大潮來(lái)襲,傳統(tǒng)數(shù)據(jù)庫(kù)市場(chǎng)正面臨重新洗牌的情境,包括云數(shù)據(jù)庫(kù)在內(nèi)的一批新生力量崛起,動(dòng)搖了傳統(tǒng)數(shù)據(jù)庫(kù)的壟斷地位,而由云廠商主導(dǎo)的云原生數(shù)據(jù)庫(kù)則將這種改變推向了高潮。 云時(shí)代的數(shù)據(jù)庫(kù)將面臨怎樣的...

    frolc 評(píng)論0 收藏0
  • 阿里云發(fā)布POLARDB,未來(lái)3年無(wú)自研數(shù)據(jù)庫(kù)的云計(jì)算玩家將被淘汰

    摘要:近日,阿里云正式對(duì)外發(fā)布了全新一代自研關(guān)系型數(shù)據(jù)庫(kù)。而他認(rèn)為,在未來(lái)年內(nèi),沒有自研數(shù)據(jù)庫(kù)的云計(jì)算廠商將會(huì)被逐漸淘汰出局。 近日,阿里云正式對(duì)外發(fā)布了全新一代自研關(guān)系型數(shù)據(jù)庫(kù)POLARDB。值得注意的是,POLARDB并不是基于開源數(shù)據(jù)庫(kù)MySQL之上研發(fā)的分支,而且基于第三代分布式共享存儲(chǔ)架構(gòu),創(chuàng)新實(shí)現(xiàn)企業(yè)級(jí)OLTP與OLAP一體化數(shù)據(jù)庫(kù)系統(tǒng)整體設(shè)計(jì)。這意味著,在行業(yè)還在使用第一代,第二代架...

    FingerLiu 評(píng)論0 收藏0
  • 2021年8月國(guó)產(chǎn)數(shù)據(jù)庫(kù)大事記

    摘要:本文整理了年月國(guó)產(chǎn)數(shù)據(jù)庫(kù)大事件和重要產(chǎn)品發(fā)布消息。柏睿數(shù)據(jù)庫(kù)加速安全卡面向全球重磅發(fā)布。月日,在全球數(shù)字經(jīng)濟(jì)大會(huì)成果發(fā)布會(huì)上,中國(guó)移動(dòng)北京分公司與國(guó)產(chǎn)數(shù)據(jù)庫(kù)領(lǐng)域新銳企業(yè)柏睿數(shù)據(jù)簽署戰(zhàn)略合作協(xié)議。本次大賽主要面向全國(guó)愛好數(shù)據(jù)庫(kù)的高校學(xué)生。 本文整理了2021年8月國(guó)產(chǎn)數(shù)據(jù)庫(kù)大事件和重要產(chǎn)品發(fā)布消息。目錄8月國(guó)產(chǎn)數(shù)據(jù)庫(kù)大事記TOP108月國(guó)產(chǎn)數(shù)據(jù)庫(kù)大事記時(shí)間線產(chǎn)品/版本發(fā)布兼容認(rèn)證8月排行榜新增...

    Scorpion 評(píng)論0 收藏0
  • “云”的力量崛起,數(shù)據(jù)庫(kù)市場(chǎng)再起波瀾

    摘要:不過,云來(lái)了,以阿里云為代表的云服務(wù)商攜云原生數(shù)據(jù)庫(kù)發(fā)起了新一輪挑戰(zhàn)。實(shí)際上,阿里云數(shù)據(jù)庫(kù)技術(shù)也得到國(guó)際咨詢機(jī)構(gòu)的認(rèn)可,在數(shù)據(jù)庫(kù)魔力象限中,阿里云成為國(guó)內(nèi)首個(gè)入選的科技公司。第三個(gè)是數(shù)據(jù)的安全隱私保護(hù),這是阿里云數(shù)據(jù)庫(kù)一直不敢放松的。數(shù)據(jù)庫(kù)市場(chǎng)形成今天的格局已經(jīng)很久了,商業(yè)數(shù)據(jù)庫(kù)為王,這幾乎沒有變過。不過,云來(lái)了,以AWS、阿里云為代表的云服務(wù)商攜云原生數(shù)據(jù)庫(kù)發(fā)起了新一輪挑戰(zhàn)。與以往歷次的挑...

    _ipo 評(píng)論0 收藏0
  • 阿里云發(fā)布POLARDB,未來(lái)3年無(wú)自研數(shù)據(jù)庫(kù)的云計(jì)算玩家將被淘汰

    摘要:近日,阿里云正式對(duì)外發(fā)布了全新一代自研關(guān)系型數(shù)據(jù)庫(kù)。而他認(rèn)為,在未來(lái)年內(nèi),沒有自研數(shù)據(jù)庫(kù)的云計(jì)算廠商將會(huì)被逐漸淘汰出局。 近日,阿里云正式對(duì)外發(fā)布了全新一代自研關(guān)系型數(shù)據(jù)庫(kù)POLARDB。值得注意的是,POLARDB并不是基于開源數(shù)據(jù)庫(kù)MySQL之上研發(fā)的分支,而且基于第三代分布式共享存儲(chǔ)架構(gòu),創(chuàng)新實(shí)現(xiàn)企業(yè)級(jí)...

    yexiaobai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<