我是Netezza DB中的驗證列,以確保所有數據格式正確。樣本數據的格式爲'2014-01-21 04:43:00'
。正則表達式驗證Netezza DB中的數據格式
是否可以在Netezza中使用默認函數進行驗證?
我是Netezza DB中的驗證列,以確保所有數據格式正確。樣本數據的格式爲'2014-01-21 04:43:00'
。正則表達式驗證Netezza DB中的數據格式
是否可以在Netezza中使用默認函數進行驗證?
感謝您的回覆。
能夠拿出以下解決方案與您的支持。
select SQLEXT.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')
您可以使用隨附的INZA軟件包提供的isdate UDF。這是一個功能強大的函數,用於檢查輸入str以根據您提供的格式進行測試。
你必須把它安裝到你想用它在數據庫中,這樣
[[email protected] examples]$ pwd
/nz/extensions/nz/nzlua/examples
[[email protected] examples]$ ../bin/nzl -d testdb isdate.nzl
Compiling: isdate.nzl
####################################################################
UdxName = isdate
UdxType = UDF
Arguments = VARCHAR(40),VARCHAR(40)
Result = BOOL
Dependencies = INZA.INZA.LIBNZLUA_3_2_0
NZUDXCOMPILE OPTIONS: (--replbyval --nullcall --unfenced --mem 2m)
CREATE FUNCTION
[[email protected] examples]$ nzsql -d testdb -c "select isdate('2014-01-21 04:43:00','YYYY-MM-DD HH:MI:SS');"
ISDATE
--------
t
(1 row)
[[email protected] examples]$ nzsql -d testdb -c "select isdate('2014-01-21 44:43:00','YYYY-MM-DD HH:MI:SS');"
ISDATE
--------
f
(1 row)
正如@ScottMcG提到的,你可以使用SQL擴展工具包使用正則表達式。此示例將返回模式匹配的boolean
驗證。
select sql_functions.admin.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')
感謝您的回覆。在我的情況下,我沒有特權安裝。那麼,除此之外還有其他選擇嗎? – SMPH 2015-02-07 09:14:26
除了SQL擴展工具包中可用的正則表達式函數(也包括在內)中,但也必須由管理員安裝之外,我不知道如何在Netezza中有效地使用UDF執行此操作,而UDF必須是安裝。抱歉! – ScottMcG 2015-02-07 17:47:30