用于验证 Netezza DB 中数据格式的正则表达式
Regular Expression to verify data format in Netezza DB
我正在 Netezza 数据库中验证列以确保所有数据的格式正确。样本数据采用这种格式 '2014-01-21 04:43:00'
。
是否可以使用 Netezza 中的默认函数对此进行验证?
您可以使用随附的 INZA 软件包提供的 isdate UDF。这是一个布尔函数,用于检查输入 str 以根据您提供的格式进行测试。
您必须将它安装到要使用它的数据库中,就像这样
[nz@netezza examples]$ pwd
/nz/extensions/nz/nzlua/examples
[nz@netezza 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
[nz@netezza examples]$ nzsql -d testdb -c "select isdate('2014-01-21 04:43:00','YYYY-MM-DD HH:MI:SS');"
ISDATE
--------
t
(1 row)
[nz@netezza 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 扩展工具包来使用正则表达式。此示例将 return 模式匹配的 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}$')
感谢您的回复。
能够在您的支持下提出以下解决方案。
select SQLEXT.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')
我正在 Netezza 数据库中验证列以确保所有数据的格式正确。样本数据采用这种格式 '2014-01-21 04:43:00'
。
是否可以使用 Netezza 中的默认函数对此进行验证?
您可以使用随附的 INZA 软件包提供的 isdate UDF。这是一个布尔函数,用于检查输入 str 以根据您提供的格式进行测试。
您必须将它安装到要使用它的数据库中,就像这样
[nz@netezza examples]$ pwd
/nz/extensions/nz/nzlua/examples
[nz@netezza 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
[nz@netezza examples]$ nzsql -d testdb -c "select isdate('2014-01-21 04:43:00','YYYY-MM-DD HH:MI:SS');"
ISDATE
--------
t
(1 row)
[nz@netezza 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 扩展工具包来使用正则表达式。此示例将 return 模式匹配的 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}$')
感谢您的回复。
能够在您的支持下提出以下解决方案。
select SQLEXT.regexp_like('2014-01-21 04:43:00','\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')