让我们将SQL文件视为包含以下语句的输入(即myTable.sql):
EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM ' || myTable || ' FOR SCHEMA1.' || myTable;
是否有一种简单的方法(使用sed)复制此语句并按如下方式修改它们?
EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM SCHEMA2.' || myTable || ' FOR SCHEMA1.' || myTable;
EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM SCHEMA3.' || myTable || ' FOR SCHEMA1.' || myTable;
非常感谢你的帮助。 微米。
*编辑*
第一部分可以这样解决:
sed -i -e '/PUBLIC SYNONYM/p' myTable.sql
第二部分是关于两个搜索和替换命令:
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA2./' myTable.sql
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA3./' myTable.sql
我认为我的问题已得到解答。如果您发现更有效的内容,请随时回复。欢呼声。
答案 0 :(得分:0)
第一部分可以这样解决:
sed -i -e '/PUBLIC SYNONYM/p' myTable.sql
第二部分是关于两个搜索和替换命令:
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA2./' myTable.sql
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA3./' myTable.sql
我认为我的问题已得到解答。如果您发现更有效的内容,请随时回复。欢呼声。