SELECT 'delete schema.'||table_name||' where code =''XYZ'';'||'
commit;' FROM users
这就是我所看到的
select delete scheme.table_name where code = 'xyz'; commit; from users
谢谢!
答案 0 :(得分:2)
我可以看到混乱。但结果应该很简单
您没有执行正在创建字符串的删除语句
您正在使用表格user
,并且有一个名为table_name
但你的最终结果是错误的
这相当于
select 'delete scheme.table_name where code = 'xyz'; commit;'
from users
table_name
的价值是什么
可能在查询之后,将结果复制/粘贴到rdbms以执行某些命令。
答案 1 :(得分:0)
SELECT c FROM t
返回一个表,其中一列名为c,每行表t都有一行。输出行包含其输入行的列c值。
SELECT 'pq' FROM t
返回一个包含一列和一行的表。该列的值是由字符p
和字符q
形成的字符串。
SELECT 'p''q' FROM t
返回一个包含一列和一行的表。该列的值是由字符p
,然后是撇号字符'
,然后是字符q
形成的字符串。
SELECT 'p'||c||'q' from t
返回一个表,其中一列包含表t的每一行。输出行包含由字符p
形成的字符串,然后是形成其输入行的列c值的字符串表示的字符,然后是字符q
。
SELECT 'delete schema.'||table_name||' where code =''XYZ'';'||'commit;' FROM users
因此,如果在表用户有两行并且两列table_name值是由字符ab
和cd
形成的字符串时运行此查询,则结果是一个包含一列的表两排。一列和两行的值是由以下字符组成的字符串:
delete schema.ab where code ='XYZ';commit;
delete schema.cd where code ='XYZ';commit;
如果表用户中只有一行,并且您在另一个查询中将查询作为子选择运行,则子选择返回的单列单行表可以(隐式)转换为作为其一个元素的字符串
您可能希望将一个这样的行的(字符串)值作为一系列SQL命令传递给DBMS。
但如果你是"看到"由字符
组成的字符串select delete scheme.table_name where code = 'xyz'; commit; from users
然后您使用查询字符串执行其他操作而不是将其作为查询运行。但是你还没有清楚地说明你在什么状态下提交什么系统以获得什么输出的字符串。