Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyodbc和Oracle SQL无效数字错误_Python_Sql_Oracle - Fatal编程技术网

Python pyodbc和Oracle SQL无效数字错误

Python pyodbc和Oracle SQL无效数字错误,python,sql,oracle,Python,Sql,Oracle,我通过pyodbc连接到Oracle数据库,并始终获得ORA-01722。我是否可以以字符或其他方式读取数据,以便在Python中进行处理?我以只读方式访问此数据,似乎无法找到避免错误的解决方案。这是我得到的代码和错误 import pyodbc con = pyodbc.connect('myconnectionstring') data_cursor = 'SELECT * FROM my_table' DataError: ('22018', '[22018] [Oracle][ODBC

我通过pyodbc连接到Oracle数据库,并始终获得ORA-01722。我是否可以以字符或其他方式读取数据,以便在Python中进行处理?我以只读方式访问此数据,似乎无法找到避免错误的解决方案。这是我得到的代码和错误

import pyodbc
con = pyodbc.connect('myconnectionstring')
data_cursor = 'SELECT * FROM my_table'

DataError: ('22018', '[22018] [Oracle][ODBC][Ora]ORA-01722: Ungültige Zahl\n\x00\u07fe\x00\x00\x00\x00\x00뿗耄
\x01\x00\x03\x00\x00\x00껐1\x00\x00\x00\x00\x00\x00櫈߯
\x00\x00H\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (1722) (SQLExecDirectW)')
对该表进行故障排除时,我有8列具有以下特征:

q = "SELECT column_name, data_type FROM USER_TAB_COLUMNS WHERE table_name = 'my_table'"
td = con.execute(q)
cols = np.vstack([i for i in td])
cols

array([['A', 'VARCHAR2'],
       ['B', 'VARCHAR2'],
       ['C', 'NUMBER'],
       ['D', 'NUMBER'],
       ['E', 'NUMBER'],
       ['F', 'NUMBER'],
       ['G', 'NUMBER'],
       ['H', 'VARCHAR2']], dtype='<U11')
我不确定这是系统的语言问题还是其他问题。我在所有的错误字符串中都看到了中文(?)字符,但我的机器(OS:Windows7Enterprise)是德语的

任何帮助阅读此数据库将不胜感激

def get_tab_col(table_name, col_name):
    q = "SELECT TO_CHAR({}) FROM {}".format(col_name, table_name)
    return con.execute(q)

data = {}
for c in cols[:, 0]:
    try:
        x = get_tab_col(table_name, c)
        data[c] = np.vstack([i for i in x])
    except Exception as e:
        print('{} fails'.format(c))

B fails
D fails
E fails
F fails