def insert_ods_sc(odskettle):
conn = sc_conn()
try:
cursor = conn.cursor()
insert_query = 'INSERT INTO BIPAY.BI_SYNC_TABLES_V2_N VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22)'
if len(odskettle) != 0:
for i in range(len(odskettle)):
id = odskettle.ix[i,0]
title = odskettle.ix[i,1]
schedule_type = odskettle.ix[i,2]
status = odskettle.ix[i,3]
db_type = odskettle.ix[i,4]
data_source = odskettle.ix[i,5]
s_schema = odskettle.ix[i,6]
s_table_name = odskettle.ix[i,7]
t_schema = odskettle.ix[i,8]
t_table_name = odskettle.ix[i,9]
t_wrk_schema = odskettle.ix[i,10]
t_get_max_sql = odskettle.ix[i,11]
flg_truncate_table = odskettle.ix[i,12]
s_sql = odskettle.ix[i,13]
t_before_sql = odskettle.ix[i,14]
t_after_sql = odskettle.ix[i,15]
success_mail = odskettle.ix[i,16]
create_dt = odskettle.ix[i,17]
created_by = odskettle.ix[i,18]
customer_var = odskettle.ix[i,19]
sync_type = odskettle.ix[i,20]
create_sql = str(odskettle.ix[i,21])
print create_sql
params = [id, title, schedule_type, status, db_type, data_source, s_schema, s_table_name, t_schema, t_table_name, t_wrk_schema, t_get_max_sql,
flg_truncate_table, s_sql, t_before_sql, t_after_sql, success_mail, create_dt, created_by, customer_var, sync_type, create_sql]
cursor.execute('"""'+ create_sql + '"""')
conn.commit()
cursor.close()
print "ODSKETTLE FINISH!"
else:
print "NO NEW DW_JOB!"
except cx_Oracle.DatabaseError as msg:
print(msg)
finally:
pass
执行的Python代码,
create_sql存储的建表语句是
create table K_TRADE_ODS.PAYM_TB_BIZ_PRODUCT_MAP
(
biz_product_code VARCHAR2(32) not null,
product_code VARCHAR2(32) not null,
enable_flag CHAR(1) not null,
memo VARCHAR2(512),
gmt_create DATE not null,
gmt_modify DATE not null,
buyer_account_type VARCHAR2(50),
seller_account_type VARCHAR2(50),
extension VARCHAR2(128)
)
报错的信息是
ORA-00972: 标识符过长
大神帮忙解决一下
conn = sc_conn()
try:
cursor = conn.cursor()
insert_query = 'INSERT INTO BIPAY.BI_SYNC_TABLES_V2_N VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22)'
if len(odskettle) != 0:
for i in range(len(odskettle)):
id = odskettle.ix[i,0]
title = odskettle.ix[i,1]
schedule_type = odskettle.ix[i,2]
status = odskettle.ix[i,3]
db_type = odskettle.ix[i,4]
data_source = odskettle.ix[i,5]
s_schema = odskettle.ix[i,6]
s_table_name = odskettle.ix[i,7]
t_schema = odskettle.ix[i,8]
t_table_name = odskettle.ix[i,9]
t_wrk_schema = odskettle.ix[i,10]
t_get_max_sql = odskettle.ix[i,11]
flg_truncate_table = odskettle.ix[i,12]
s_sql = odskettle.ix[i,13]
t_before_sql = odskettle.ix[i,14]
t_after_sql = odskettle.ix[i,15]
success_mail = odskettle.ix[i,16]
create_dt = odskettle.ix[i,17]
created_by = odskettle.ix[i,18]
customer_var = odskettle.ix[i,19]
sync_type = odskettle.ix[i,20]
create_sql = str(odskettle.ix[i,21])
print create_sql
params = [id, title, schedule_type, status, db_type, data_source, s_schema, s_table_name, t_schema, t_table_name, t_wrk_schema, t_get_max_sql,
flg_truncate_table, s_sql, t_before_sql, t_after_sql, success_mail, create_dt, created_by, customer_var, sync_type, create_sql]
cursor.execute('"""'+ create_sql + '"""')
conn.commit()
cursor.close()
print "ODSKETTLE FINISH!"
else:
print "NO NEW DW_JOB!"
except cx_Oracle.DatabaseError as msg:
print(msg)
finally:
pass
执行的Python代码,
create_sql存储的建表语句是
create table K_TRADE_ODS.PAYM_TB_BIZ_PRODUCT_MAP
(
biz_product_code VARCHAR2(32) not null,
product_code VARCHAR2(32) not null,
enable_flag CHAR(1) not null,
memo VARCHAR2(512),
gmt_create DATE not null,
gmt_modify DATE not null,
buyer_account_type VARCHAR2(50),
seller_account_type VARCHAR2(50),
extension VARCHAR2(128)
)
报错的信息是
ORA-00972: 标识符过长
大神帮忙解决一下
create_sql存储的建表语句后面是否需要加上一个分号?
'"""'+ create_sql + '"""' 注意检查语句的前后是否缺少空格?
35个字符,36个字符是复制的时候带空格了