我正在尝试将数据插入 Oracle 数据库,在此过程中我收到此错误 cx_Oracle.NotSupportedError:不支持类型元组的 Python 值。
我正在使用的脚本
curs.execute('insert into APP(APP_CODE,APP_NAME,PARENT_APP_CODE,INSERT_DTTM,INSERT_USER,UPDATE_DTTM,UPDATE_USER,IDFED_PROVIDER_ID,IDFED_SAML_GTWY_URL,TEMPLATE_FTL,USER_ACCTS_FLAG,XML_DATA_FLAG,CAPS_REQUIRED,SESSIONID_REQUIRED) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)'',row_data)
数据库架构
(APP_CODE VARCHAR2(50 BYTE) NOT NULL
, APP_NAME VARCHAR2(80 BYTE) NOT NULL
, PARENT_APP_CODE VARCHAR2(20 BYTE)
, INSERT_DTTM TIMESTAMP(6) DEFAULT SYSDATE NOT NULL
, INSERT_USER VARCHAR2(150 BYTE) DEFAULT USER NOT NULL
, UPDATE_DTTM TIMESTAMP(6) DEFAULT SYSDATE NOT NULL
, UPDATE_USER VARCHAR2(150 BYTE) DEFAULT USER NOT NULL
, IDFED_PROVIDER_ID VARCHAR2(1000 BYTE)
, IDFED_SAML_GTWY_URL VARCHAR2(2000 BYTE)
, TEMPLATE_FTL CLOB
, USER_ACCTS_FLAG VARCHAR2(30 BYTE)
, XML_DATA_FLAG VARCHAR2(30 BYTE)
, CAPS_REQUIRED VARCHAR2(1 BYTE) DEFAULT 'N'
, SESSIONID_REQUIRED VARCHAR2(1 BYTE) DEFAULT 'N')
谁能帮帮我吗?
最佳答案
I am using currently:
row_data = [("appcode","appName","parent_app_code",datetime.datetime.now(),"insert",datetime.datetime.now(),"update_user","idfed_provider_id","idfed_SAML_gateway_URL","template","false","true","N","Y")]
row_data
是一个包含 14 个项目的元组的列表。 curs.execute
正在将列表的第一个元素分配给 :1
;但是,第一个元素是导致抛出错误的元组。
正如@Matthias所述您应该删除 []
列表或 ()
元组:
row_data = ("appcode","appName","parent_app_code",datetime.datetime.now(),"insert",datetime.datetime.now(),"update_user","idfed_provider_id","idfed_SAML_gateway_URL","template","false","true","N","Y")
或
row_data = ["appcode","appName","parent_app_code",datetime.datetime.now(),"insert",datetime.datetime.now(),"update_user","idfed_provider_id","idfed_SAML_gateway_URL","template","false","true","N","Y"]
关于python - cx_Oracle.NotSupportedError : Python value of type tuple not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58909841/