python - 插入多行,其中插入语句的列的所有值都相同,除了一列
问题描述
我正在将多个条目插入表中。除了一列之外,插入语句的所有列的值都是相同的。如程序所示,此特定列从 excel 文件中连续获取值。我不知道如何使用 cx_Oracle 模块将此增量值传递给插入查询。
我尝试使用代码中显示的绑定概念,但没有任何成果,请建议。
import pandas as pd
df=pd.read_excel(r'C:\Users\ABHISHEK.POUDEL\Desktop\mmyyyy.xlsx')
import cx_Oracle
con=cx_Oracle.connect('system/manager1@192.168.8.72:1521/SANUPS')
cur=con.cursor()
print(con.version)
print(df.head(5))
x=df.head(5)
size=x.size
sql="""Insert into tbaadm.hol (CAL_B2K_TYPE,CAL_B2K_ID,MMYYYY,DEL_FLG,HLDY_STR,COMMENT_STR,RECVD_STR,STATUS,LCHG_USER_ID,LCHG_TIME,RCRE_USER_ID,RCRE_TIME,TS_CNT,BANK_ID)
VALUES ('BRANCH','910',:1,'N',null,null,null,' ','SYSTEM',to_date('25-JUL-19','DD-MON-YY'),'SYSTEM',to_date('25-JUL-19','DD-MON-RR'),0,'01')"""
def insert_func(val):
val=str(val)
#cur.execute(sql,(val))
cur.execute("""Insert into tbaadm.hol (CAL_B2K_TYPE,CAL_B2K_ID,MMYYYY,DEL_FLG,HLDY_STR,COMMENT_STR,RECVD_STR,STATUS,LCHG_USER_ID,LCHG_TIME,RCRE_USER_ID,RCRE_TIME,TS_CNT,BANK_ID)
VALUES ('BRANCH','910',:1,'N',null,null,null,' ','SYSTEM',to_date('25-JUL-19','DD-MON-YY'),'SYSTEM',to_date('25-JUL-19','DD-MON-RR'),0,'01'), val""")
return
for f in range(size):
print(f)
print(df.iloc[f])
insert_func(df.iloc[f])
con.commit()
con.close()
11.2.0.2.0
MMYYYY
0 122099
1 122098
2 122097
3 122096
4 122095
0
MMYYYY 122099
Name: 0, dtype: int64
Traceback (most recent call last):
File "D:\AVI\PYTHON\KOMODO_FILES\create_date_daily_files.py", line 40, in <module>
insert_func(df.iloc[f])
File "D:\AVI\PYTHON\KOMODO_FILES\create_date_daily_files.py", line 34, in insert_func
VALUES ('BRANCH','910',:1,'N',null,null,null,' ','SYSTEM',to_date('25-JUL-19','DD-MON-YY'),'SYSTEM',to_date('25-JUL-19','DD-MON-RR'),0,'01'), val""")
cx_Oracle.DatabaseError: ORA-00933: SQL command not properly ended
解决方案
您需要将参数传递给执行,如下所示:
cursor.execute(sql, [val])
或者
cursor.execute(sql, (val,))
推荐阅读
- azure - 无法将来自资源的输入事件反序列化为 Json
- html - 当其中有另一个表格时如何使所有表格行的高度相同
- python - tkinter 中的 Pong 游戏,检查球是否击中垂直桨
- c++ - Emsripten 编译的 qt 应用程序不显示图像
- php - 分叉的 PHP 进程中的连接错误
- firebase - 我的 _showErrorMessage 小部件在 null 上调用了 getter 'length'
- c# - 在面向 .NET 4.7.2 时尝试将 ServiceStack 从 4.6.3 升级到 5.5.0 时出现编译时错误
- python - 使用 Python 列表为多边形创建坐标
- r - 如何在 r 中使用 CI 绘制多元逻辑回归的奇数比
- laravel - Laravel 服务器到客户端的通信