• 主页
  • 转义firebird isql结果中的引号

转义firebird isql结果中的引号

我有一些简单的bash脚本,它们使用isql查询一个Firebird数据库,并通过管道将结果传递给连接到另一个数据库的isql。第一个结果集的形式为UPDATE ...或插入...第二个isql执行这些命令。到目前为止,数据一直是数字的;现在我必须处理可能包含嵌入引号的名称。这会导致对第二个isql的输入无效。确保单个引号(在名称中,而不是整个结果集)加倍的最简单方法是什么?

UPDATE FOO SET NAME='O'CONNOR' WHERE ...;

应该是

UPDATE FOO SET NAME='O''CONNOR' WHERE ...;

bash代码是

(isql -i update.sql server:db1; echo "COMMIT;") | egrep "^UPDATE|^COMMIT"|isql -e server2:db2

其中update.sql结果集是上面显示的update命令。不,我并不担心小波比桌:)

转载请注明出处:http://www.jubohx.com/article/20230504/2509072.html