Db2 存储数据遇到错误 The numeric literal XXXX is not valid
Posted
技术标签:
【中文标题】Db2 存储数据遇到错误 The numeric literal XXXX is not valid【英文标题】:Db2 storing of data encountered error of The numeric literal XXXX is not valid 【发布时间】:2021-05-18 09:16:45 【问题描述】:我正在为 Neighborhood 解析 Wikepedia1,为 Neighbourhood 的纬度和经度解析 Wikipedia2,并将其存储到 IBM Db2 中。我遇到了以下错误代码。请指教。
导入版本如下
ibm_db 3.0.2
requests 2.24.0
bs4 4.9.1
pandas 1.0.5
我能够解析到第 102 项,如下所示:
失败位置的 HTML:
错误代码
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-9-035d46749936> in <module>
14 print(primary_key,";",neighbour['href'],";", neighbour['title'],";",lat, lng)
15 insertQuery = f"insert into TORONTO values(primary_key,'neighbour['title']','neighbour['href']','lat','lng')"
---> 16 ibm_db.exec_immediate(conn,insertQuery)
Exception: [IBM][CLI Driver][DB2/LINUXX8664] SQL0103N The numeric literal "27s_Bridge" is not valid. SQLSTATE=42604 SQLCODE=-103
我的 Db2 表如下
create table TORONTO(id INTEGER PRIMARY KEY NOT NULL, neighbourhood VARCHAR(20), href VARCHAR(20), latitude VARCHAR(20), longitude VARCHAR(20) )
我的解析代码
primary_key = 0
for table in soup.find_all('table', class_ = 'multicol'):
for neighbour in table.find_all('a', href=True, class_=False):
url2 = 'https://en.wikipedia.org/' + neighbour['href']
url_object = requests.get(url2)
soup2 = BeautifulSoup(url_object.text, 'html.parser')
count = 0
primary_key += 1
for coor in soup2.find_all('span', class_ = ['latitude','longitude']):
if count == 2: continue
if count == 0: lat = str(coor.string)
if count == 1: lng = str(coor.string)
count += 1
print(primary_key,url2, neighbour['title'],lat, lng)
insertQuery = f"insert into TORONTO values(primary_key,'neighbour['title']','url2','lat','lng')"
ibm_db.exec_immediate(conn,insertQuery)
【问题讨论】:
一张名为 Toronto 的桌子?!?每个城市的单独表格是一个非常糟糕的主意。 仅用于 1 次分配。我需要找出多伦多的所有邻居 请编辑您的问题,以显示您使用的组件的 版本(以及您的 python 代码中的import ...
列表),例如来自pip freeze
等
添加了导入版本。感谢您的建议。
【参考方案1】:
尝试将您的查询更改为:
insertQuery = f"insert into TORONTO values(primary_key,'neighbour['title']','url2','lat','lng')"
【讨论】:
您好,谢谢。有用。我可以知道为什么需要在变量中添加 '' 吗?我虽然都已经是表架构指定的字符串? SQL 与 python 类似,所有字符串都需要用引号/撇号包围,仅引用变量是不够的,您需要在引号/撇号中硬编码。 哦明白了。所以即使变量是字符串还是不够的。 嗨。我有一个新的错误代码[IBM][CLI Driver][DB2/LINUXX8664] SQL0103N The numeric literal "27s_Bridge" is not valid. SQLSTATE=42604 SQLCODE=-103
它发生在观察 #103
您能否分享确切的 SQL 插入语句正在尝试使用值而不是变量名运行?以上是关于Db2 存储数据遇到错误 The numeric literal XXXX is not valid的主要内容,如果未能解决你的问题,请参考以下文章
db2报SQL0964C The trnsaction log for the database is full. SQLSTATE=57011
DB2 - 错误“不允许使用“WITH ISOLATION USE AND KEEP”子句”
对 DB2 for z/OS 的存储过程调用中不支持字符串文字
ImportError: DLL load failed: The specified module could not be found -- IBM DB2