iBATIS 和 dblink?
Posted
技术标签:
【中文标题】iBATIS 和 dblink?【英文标题】:iBATIS and dblink? 【发布时间】:2017-02-28 07:57:29 【问题描述】:我正在使用 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找不到要替换的参数。
我有什么解决办法吗?
【问题讨论】:
使用外部数据包装器和外部表。那么 iBATIS 将无法区分本地表和远程表 @a_horse_with_no_name 抱歉,没看懂,能发个例子吗? postgresql.org/docs/current/static/postgres-fdw.html 【参考方案1】:格式有帮助吗?喜欢:
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#)
);
【讨论】:
以上是关于iBATIS 和 dblink?的主要内容,如果未能解决你的问题,请参考以下文章