导出数据帧到Oracle:类型错误
我一再失败以下数据框导出到我的Oracle表:导出数据帧到Oracle:类型错误
final df is: S USTAINABLE H ARVEST S ECTOR| QUOTA LISTING JUN 11 2013 Unnamed: 1 \
2 6/4/13 130196
3 5/28/13 130158
4 6/4/13 130210
5 5/14/13 130079
6 6/4/13 130187
7 6/4/13 130208
8 6/11/13 130249
9 6/4/13 130204
10 5/28/13 130148
11 5/28/13 130149
12 5/28/13 130157
13 5/21/13 130105
14 5/21/13 130106
15 6/4/13 130205
16 6/11/13 130250
17 6/4/13 130206
18 6/11/13 130248
19 QUOTA TO BUY 0
20 DATE TRADE ID
21 6/11/13 130239
22 5/14/13 130074
23 3/26/13 130006
24 5/14/13 130075
25 5/7/13 130023
26 5/14/13 130039
27 1 0
Unnamed: 2 Unnamed: 3 Unnamed: 4 email_year email_month \
2 COD GBW 10000 0.6 2013 6
3 COD GBW 300 0.6 2013 6
4 HADDOCK GBE UP TO 30,000 OFFERS 2013 6
5 PLAICE 1000 0.45 2013 6
6 WHITE HAKE UP TO 25,000 0.5 2013 6
7 WHITE HAKE 4000 0.5 2013 6
8 WINTER GB 3300 0.25 2013 6
9 WINTER GB 10000 0.48 2013 6
10 WINTER GB 1U0P 0T,0O00 0.25 2013 6
11 WINTER GB UP TO 10,000 0.4 2013 6
12 WINTER GB 1400 0.25 2013 6
13 WINTER GB 10000 0.5 2013 6
14 WINTER GB 10000 0.5 2013 6
15 WINTER GOM 1000 0.38 2013 6
16 WINTER SNE 6500 0.4 2013 6
17 WINTER SNE 3000 0.63 2013 6
18 YELLOWTAIL GOM 2000 1.25 2013 6
19 0 0 0 2013 6
20 DESIRED STOCK AMOUNT BUY PRICE 2013 6
21 COD GOM UP TO 14,000 2.1 2013 6
22 COD GOM 20000 INQUIRE 2013 6
23 COD GBE ANY 1.5 2013 6
24 HADDOCK GOM 10000 INQUIRE 2013 6
25 HADDOCK GOM UP TO 6,000 0.75 2013 6
26 WHITE HAKE UP TO 100,000 0.3 2013 6
27 0 0 0 2013 6
email_day
2 11
3 11
4 11
5 11
6 11
7 11
8 11
9 11
10 11
11 11
12 11
13 11
14 11
15 11
16 11
17 11
18 11
19 11
20 11
21 11
22 11
23 11
24 11
25 11
26 11
27 11
它失败与错误
TypeError: expecting numeric data
行cursor.executemany(sql_query, exported_data)
。
我的相关代码:
cursor = con.cursor()
exported_data = [tuple(x) for x in df.values]
#exported_data = [str(x) for x in df.values]
sql_query = ("INSERT INTO ROUGHTABLE(species, date_posted, stock_id, pounds, money, trade_year, trade_month, trade_day, sector_name, ask)" "VALUES(:3, :1, :2, :4, :5, :6, :7, :8 'Sustainable Harvest Sector', '1')")
cursor.executemany(sql_query, exported_data)
con.commit() #commit to database
cursor.close()
con.close()
当我发表意见exported_data
行和取消注释它下面的一个,它仍然失败,但这次错误
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
研究性这些错误表明它们可能是由于绑定变量,无效的日期格式,试图导出字符串与字典等。我不是SQL的专家,并希望能够帮助解决这个问题。
任何帮助,将不胜感激,谢谢。
您可能会缺少一个逗号。 看起来--- VALUES(:3,:1,:2,:4,:5,:6,:7,:8'Sustainable Harvest Sector','1')“)
Try-- - :
sql_query =(“INSERT INTO ROUGHTABLE(species,date_posted,stock_id,pounds,money,trade_year,trade_month,trade_day,sector_name,ask)VALUES(:3,:1,:2,:4,:5, :6,7,8, '可持续收获扇区', '1')“)
的Oracle SQL --- INSERT INTO(COL_1,COL_2)值( 'character_value',numeric_val);
Sql_query =(“insert into(col_1,col_2)values('character_value',numeric_val);”)
看起来像数字列中有非数字值,不是吗?添加oracle表定义可以帮助解决问题。
我的Oracle表中的所有列设置为接收'VarChar2'并不是该专栏正在寻找一个号码,而是收到一封信。 – theprowler
我修正了这个问题,但仍然失败,出现同样的错误:( – theprowler
您是否还删除了'ask'和VALUES之间的代码中的额外引号?ie,而不是[... sector_name,ask]“” VALUES(:3,:1 ...]应该是[... sector_name,ask] VALUES(:3,:1,...] –
我同意@WillJobs。从句法上来说, INSERT'和'VALUES'之间的中间引号对 – Parfait