Python使用cx_Oracle报错Ora-01036解决方案_南国

oracle特有的错误:ORA-01036:非法的变量名/编号 ORA-01036:非法的变量名/编号 oracle特有的错误 立即下载

最近项目又让写爬虫程序,这次用的MySql数据库,上次用的Oracle数据库,这次在爬取数据之后存库的时候并没有用之前的拼接sql进行存库,因为前一段学习Python视频的时候,视频里的老师说拼接的话存在sql注入问题,所以这次用了占位符%s,来防止sql注入

在填充的时候就会加引号了,写完之后意识到之前写的那个爬虫脚本也存在相同问题,然后改成占位符%s之后一直报错,百度了之后才知道,Oracle中占位符不可以用%s,需要用:1,:2来占位,以后遇到坑总结下,可能就印象深刻啦

顺便将之前的几篇爬虫总结下

简单爬虫Python+Oracle
简单爬取信息之BeautifulFly+MySql
用Request简单爬取英雄联盟所有皮肤
动态爬取flash数据,这篇有点难,F12看不到数据需要借助抓包工具
看不懂上一篇抓包工具charles的话,结合这一篇博客理解

最原先拼接的SQL:

 sql = "insert into PRODUCTPRICE(ID,NAME,PRICE,UNIT,AREA,INDATE) values ('" + str(uuid.uuid1()) + "','" + record["farmProduceName"] + "','" + str(record["averagePrice"]) + "','" + b + "','" + record["marketName"] + "','" + str(record["reportDate"]) + "')"

改成MySql占位符的SQL:

 sql = "insert into PRODUCTPRICE(ID,NAME,PRICE,UNIT,AREA,INDATE) VALUES (%s,%s,%s,%s,%s,%s)"

结果就出现了“ORA-01036: 非法的变量名/编号”的错误。

解决方法:
将传参的占位符改为“:1, :2, :3”,

改成Oracle的SQL

 sql = "insert into PRODUCTPRICE(ID,NAME,PRICE,UNIT,AREA,INDATE) VALUES (:1,:2,:3,:4,:5,:6)"

再次执行,问题解决。

不积小流,何以成江河

使用ADS进行LNA低噪放设计的详细教程 详细介绍了通过ADS软件进行LNA设计的过程,从晶体管的选型到稳定性系数分析、再到输入输出端匹配,完整的讲解了低噪放的设计流程,可以使新手小白以及学习射频放大器的朋友可以快速的了解掌握ADS的使用方法和LNA的设计方法。 阅读详情

相关推荐

AI漫剧制作全流程零基础实操指南:从剧本到剪辑

AI漫剧是一种利用AI工具将剧本、分镜、出图、配音、剪辑整合为流水线的短视频内容形式。其技术原理基于文生图、图生图与文本转语音模型的组合,核心挑战在于角色一致性控制与分镜批量出图。这项技术大幅降低了视频制作门槛,使个人创作者无需演员和设备即可产出剧情向短内容,广泛应用于短视频平台的情景剧、玄幻、甜宠等题材。本文给出了一套零基础可照做的全流程实操方案,覆盖剧本提示词、分镜表、出图选型、配音合成与剪辑模板,帮助你快速跑通AI漫剧制作链路。

weixin_29048309的博客 520

Python使用cx_Oracle批量插入报错Ora-01036错误解决方案

最近使用Python编写数据导入程序的过程中,使用cx_Oracle库导入Oracle数据库的时候,出现了“ORA-01036: 非法的变量名/编号”的错误,经过查询资料和尝试,问题解决。 出错的语句为: sql = ‘insert into \"mytable_a\" values(%s,%s,%s)’ cursor.executemany(sql, data) 结果

TonyZhang的专栏 1万+

3分钟创建智能体

智能体简介会在首页以及名片页展示,需要简洁明了的介绍智能体用途✅优秀示例:最好用第三人称直接说明智能体用途~如:打造生动文案好帮手、专业解梦,探寻梦境奥秘等❌反面教材:简介并未介绍用途、语义含糊。如:今天写点啥、看看你做的梦等以上步骤完成后,点击发布,就能成功创建属于你自己的智能体啦~仅自己可访问(免审):发布后仅开发者本人账号可访问、预览、使用该智能体仅链接可访问:发布后任何人均可通过链接访问、预览、使用该智能体。

soso1968的博客 2081

cx_Oracle.DatabaseError: ORA-01036: 非法的变量名/编号

#-*-coding:utf-8-*- #encoding=gbk import os import cx_Oracle import xlrd os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' def orcl_insert(): try: book1 = xlrd.open_workbook(...

jsut_rick的博客 5620

从零构建工业级SPI-CAN网关:CH347与CH9431的软硬件协同设计实战

本文详细介绍了基于CH347和CH9431芯片构建工业级SPI-CAN网关的完整方案。通过硬件架构设计、Linux驱动定制、并发处理优化和EMC抗干扰测试,实现高可靠性通信网关,适用于工业自动化和汽车电子等严苛环境。

spark7igniter的博客 630

新版股票配资系统源码/股票分析系统技术方案

新版股票配资系统;全套源码支持新股申购功能,包含C#+MySQL开发的后台系统及Spring框架,采用C/S架构。注意:本源码仅限技术学习、功能测试及模拟交易使用,严禁用于非法用途,违者责任自负。

q318136906的博客 1641

错误解决:ORA-01036: 非法的变量名/编号

 出现此错误的原因很可能是存储过程的包体的参数定义与包头的定义不一样,很多时候修改了包体,却忘了修改包头。 另外,创建OracleParameter时,由于构造函数的版本众多,使用了某些版本时,可能会出现这个错误,建议创建OracleParameter时,一定要指定OracleType。 直接使用Sql 语句时,在Sql 语句中的 参数部分没有使用冒号作为前缀,或者错误使用了Sql

沐丰 的专栏 7万+

使用RepeatModeler和RepeatMasker注释基因组重复序列

重复序列注释有两种常用策略,基于同源序列相似性和基于重复序列结构特征。RepeatMasker是基于同源序列相似性注释序列的常用工具, RepeatModeler可用来从头对基因组的重复序列家族进行建模注释,它的核心组件是RECON和RepatScout。 这篇教程介绍如何使用RepeatModeler从头鉴定基因组的重复序列,之后用RepeatMasker根据自...

xuzhougeng blog 8849

oracle 非法变量名,python-2.7 - cx_Oracle.DatabaseError:ORA-01036:非法的变量名称/编号 - SO中文参考 - www.soinside.com...

我正在尝试将一个csv文件加载到oracle数据库中,并遇到此错误:cx_Oracle.DatabaseError:ORA-01036:非法的变量名称/编号您能不能帮助您了解根本原因并可能解决此问题?def main():ConStr = 'UserName/PWD@END_POINT'con = cx_Oracle.connect(ConStr)cur = con.cursor()with op...

weixin_35724999的博客 475

毕设加分项!手把手教你完成基于YOLOv8与PyQt5的多类别目标检测系统——让你的毕设从“完成”到“出色”

从KITTI数据集处理,到YOLOv8模型训练,再到PyQt5界面开发,整个流程其实没有想象中那么难。只要你跟着步骤一步步来,不仅能顺利完成毕设,还能掌握目标检测和GUI开发的核心技能——这些技能在未来的求职、读研中都非常实用。如果过程中遇到问题,别担心!可以去YOLOv8的官方文档、PyQt5论坛找答案,也可以和同学、老师交流。记住,完成毕设的过程也是你技术成长的过程,坚持下去,你会为自己的成果感到自豪。

m0_71589036的博客 178

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

曼岛_的博客 629

错误:ORA-01036: 非法的变量名/编号 的多种解决办法

根据实际情况有一下三种解决办法: 1,Oracle 中sql语句的参数前的符号@改为 : 注意,定义参数的时候,参数名不能带冒号(:); 2,OracleCommond myCmd 添加参数之前 先清除参数myCmd.Parameters.Clear(); 3,Oracle 中sql语句中参数命名方法也可导致此错误,如下: string sql="select * fr...

weixin_34415923的博客 1123

vue2 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue2,nuxt2,高德地图,热力图,绘制热力图层,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅代表,人流量,vue2使用高德地图实现某个区域热力图,vue高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue2中使用高德地图渲染热力图组件,高德地图使用热力图详细教

✅ 精选推荐文章 4200

【Python】—— cx_oracle批量执行绑定变量SQL时,使用字典做每行数据的ORA-01036问题

更新日志: [2021-11-16] 文章发布 说明: 本文地址 《【Python】—— cx_oracle批量执行时,使用字典做每行数据的ORA-01036问题》https:// 关于 MaiXiaochai 优快云:https://blog.youkuaiyun.com/maixiaochai GitHub:https://github.com/MaiXiaochai 1. 核心原因 作为数据的字典中,有SQL中不存在的字段(或变量)名 2.详解 表结构 CREATE TAB.

maixiaochai的博客 1628

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python使用pymysql和cx_Oracle插入数据的对比

使用Python向MySQL和Oracle数据库插入数据,常用的数据类型字符串,日期,数字,insert命令的拼接异同之处进行对比。

六月闻君 825

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python使用cx_Oracle插入oracle数据库ORA-01036: illegal variable name/number

row = (a,) + (b,) print(row) sql_insert1='insert into test (a,b) values (%s, %s)' cur1.execute(sql_insert1,row) python在oracle执行这个报错,使用了tuple插入数据,后来发现应该写成:1,:2的格式: sql_i...

zyann95的博客 4088

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python非法变量名_python – DatabaseError:ORA-01036:非法变量名称/编号

我认为你误解了绑定变量如何与Oracle和cx_Oracle一起工作.Oracle将SQL查询中的表达式(例如:myvar)识别为绑定变量占位符.当它遇到这个时,它会记下它在运行查询之前需要一个值才能运行查询,但它仍然可以继续解析没有这个值的查询.绑定变量占位符在字符串文字中不起作用.诸如project_code =’:jobno’之类的条件只匹配其project_code是实际的六字符字符串:j...

weixin_39731922的博客 396

python非法变量名_数据库错误:ORA-01036:非法变量名/numb

我认为您误解了绑定变量如何与Oracle和cx_Oracle一起工作。Oracle将SQL查询中的:myvar等表达式识别为绑定变量占位符。当遇到这种情况时,它会注意到在运行查询之前它需要这个变量的值,但是它仍然可以在没有这个值的情况下继续解析查询。绑定变量占位符在字符串文本中不起作用。像project_code = ':jobno'这样的条件将只匹配那些project_code是实际的六个字符串...

weixin_39747595的博客 524

Python实现将图片循环插入Oracle

Python实现将图片循环插入Oracle数据库 复盘解决出现的各种问题 需求:将一张图片循环插入Oracle数据库一万次(PS:向数据库中插入一万多张图片) 第一次搞这个,自己百度找到了两篇文章如下 Python实现将图片插入MySQL数据库 python循环插入数据 我的实现(最初): #!/usr/bin/env python # -*- coding:utf-8...

qq_43630980的博客 1354

python启动oracle数据库,Python操作Oracle数据库

#-*- coding:GBK -*-#time moduleimport cx_Oracleconn=cx_Oracle.connect("scott","Scott1314","127.0.0.1:1521/XE")#"scott/Scott1314@127.0.0.1:1521/XE"print "DB's version :",conn.versionprint "DB's userna...

weixin_39547298的博客 324

3月28日 【从EXCEL读取输入数据库】

#从excel读取数据写入mysqldef excel_to_mysql(filename): ip = '133.0.186.3' port = 11521 SID = 'BILLDB' dsn_tns = ora.makedsn(ip, port, SID) conn = ora.connect('username', 'password', dsn_tns)...

weixin_33979363的博客 68

Python连接oracle执行sql语句时报错:DatabaseError: ORA-01036: 非法的变量名/编号

Python连接oracle执行sql语句时报错:DatabaseError: ORA-01036: 非法的变量名/编号项目为vue+python+flask报错的可能原因解决方法 项目为vue+python+flask 前端vue使用axios发起请求,附带一个json数据,后端拿到该值去查询sql,结果报错:DatabaseError: ORA-01036: 非法的变量名/编号 一下为python代码 @nucleic_acid_test_record_blue.route("/getInfo", me

weixin_44394319的博客 1610

变量名

#include int main () { int a; // 这是一个int类型的变量,变量名是a,a就是一个标识符。 int b_1; int _bh; // 变量名区分大小写,不允许用两个连续的下划线, int 小崔; // C++的关键字不能作为变量名,变量名可以是下划线,字母,汉子,数字,不能以数字开头, //int double; int index; int salary; i

qq_31248551的博客 404

ORA-01036: 非法的变量名/编号

做管理系统时,连接oracle数据库,发生ORA-01036: 非法的变量名/编号: 原因: 错误出现在Parameter指定的ParameterName,与实际参数名称不匹配时。 要注意:在 new OracleParameter()中,指定的ParameterName 只需要包含 参数的字符部分,无需保含前缀,如:冒号。  简单点:@ 改成 : SqlClient参数表

chengonghao的博客 1690

python ora-01036 illegal variable name number错误

今天做项目 使用python3 在使用的过程中 需要实现sql中插入list 使用 in 的操作 首先使用如下sql语句:    sql = ""     sql += "select distinct (stage),eqp_no,fixture_no "     sql += "from %s " % table_name     sql += "where serial_no in (%...

jia.huang的博客 5746
上一篇: Python爬虫脚本,Beautifulfly+MySql(源码)
下一篇: Java_SpringBoot+WebSocket长连接_独乐乐不如众乐乐_南国
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值