iBATIS 和 dblink?
iBATIS and dblink?
我正在使用 PostgreSQL,我使用 dblink 功能更新远程数据库上的数据。我的项目使用 iBATIS 来处理数据库。
我需要 运行 带有参数的查询语句,但问题是 db_link 要求 SQL 包含在引号中。而iBATIS看不懂..
我有 iBATIS sql:
SELECT
dblink_exec(
'host=192.168.1.1 port=5432 user=abc dbname=wms password=abc',
'UPDATE m_user_profile
first_name = #4#,
last_name = #5# ,
mobile_no = #6#
WHERE user_id = CAST(#3# AS numeric)'
);
但是由于sql被引号括起来,iBATIS找不到参数替换。
我有什么解决办法吗?
格式化有帮助吗?像:
SELECT
dblink_exec(
'host=192.168.20.60 port=5432 user=clk dbname=clkdb_wms password=clk',
format('UPDATE m_user_profile
first_name = %L,
last_name = %L ,
mobile_no = %s
WHERE user_id = CAST(%s AS numeric)',#4#,#5#,#6#,#3#)
);
我正在使用 PostgreSQL,我使用 dblink 功能更新远程数据库上的数据。我的项目使用 iBATIS 来处理数据库。
我需要 运行 带有参数的查询语句,但问题是 db_link 要求 SQL 包含在引号中。而iBATIS看不懂..
我有 iBATIS sql:
SELECT
dblink_exec(
'host=192.168.1.1 port=5432 user=abc dbname=wms password=abc',
'UPDATE m_user_profile
first_name = #4#,
last_name = #5# ,
mobile_no = #6#
WHERE user_id = CAST(#3# AS numeric)'
);
但是由于sql被引号括起来,iBATIS找不到参数替换。
我有什么解决办法吗?
格式化有帮助吗?像:
SELECT
dblink_exec(
'host=192.168.20.60 port=5432 user=clk dbname=clkdb_wms password=clk',
format('UPDATE m_user_profile
first_name = %L,
last_name = %L ,
mobile_no = %s
WHERE user_id = CAST(%s AS numeric)',#4#,#5#,#6#,#3#)
);