我有一些简单的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