python转换格式sql字符串

时间:2018-03-08 08:26:14

标签: python oracle format

因为要将静态sql处理成动态sql,所以需要使用python转换格式,例如

DROP TABLE TABLE_NAME PURE;
CREATE TABLE TABLE_NAME NOLOGGING AS
SELECT DUMMY USER_ID FROM DUAL;
CREATE INDEX I_TABLE_NAME_USER_ID ON TABLE_NAME(USER_ID) NOLOGGING;

我想将格式转换为:

首先确定是否存在“删除表”,然后删除数据,替换

V_TAB_NAME: = 'TABLE_NAME';
IF (F_DROP_TAB (V_TAB_NAME) = 1) THEN
V_SQL: = ' 

最终结果显示为

V_TAB_NAME := 'TABLE_NAME ';
IF (F_DROP_TAB(V_TAB_NAME) = 1) THEN
SJ_SQL := '
CREATE TABLE TABLE_NAME NOLOGGING AS
SELECT DUMMY USER_ID FROM DUAL';
EXECUTE IMMEDIATE SJ_SQL;
COMMIT;
END IF;
SJ_SQL := '
CREATE INDEX I_TABLE_NAME_USER_ID ON TABLE_NAME (USER_ID) NOLOGGING';
EXECUTE IMMEDIATE SJ_SQL;

这可能有点难以理解,但我希望有人可以给我一些字符串来迭代并判断修改后的例子或想法。感谢。

1 个答案:

答案 0 :(得分:-1)

这是将变量插入SQL语句的简单方法:

table = 'mytable'
col1 = 'name'
col2 = 'age'

statement = 'select {}, {} from {};'.format(col1, col2, table)

这是你正在寻找的吗?如果没有,我真的不明白这个问题。