为什么我的查询不从VARCHAR字段返回任何值?

2024-04-20 03:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Python和jaydebeapi从oracle9idb查询一个表。它连接成功,游标和fecth似乎工作正常,但是当我显示结果时,只有表中的数字字段可用。你知道吗

我尝试了一些Oracle函数,比如CHAR、SUBSTR和TRIM,看看更改它的值是否有助于显示它,但没有一个有效。你知道吗

import jaydebeapi
import jpype
import os

sql = "select 0 as order, ST_CODE_PDV, ST_NAME_PDV, ST_CHANNEL,  \
                 ST_ACCESS, 'Safra', sum(ACTIVATION), sum(FRAUD) \
          from MY_TABLE \
          WHERE ST_CODE_PDV <> '-1' \
          HAVING sum(FRAUD) > 0   \
          group by ST_CODE_PDV, ST_NAME_PDV, ST_CHANNEL, ST_ACCESS, 'Safra'"

try:
    jar = os.getcwd()+'\ojdbc8.jar'
    args = '-Djava.class.path=%s' % jar
    jpype.startJVM("C:\\Program Files\\Java\\jre1.8.0_121\\bin\\server\\jvm.dll", args)

    cn = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@dbserverinfo', ["user","pass"])

    print("Connection Successful")

    curs = cn.cursor()
    curs.execute(sql)

    result = curs.fetchall()

    for r in result:
        print(r)

    curs.close()
    cn.close()

except Exception as e:
    print("connection error:", e)

预期结果是:

(0.0, 'NE99_TSR02X_TS9876_XY001', 'STARK TELECOM', 'AGENT SALES', '', 'Safra', 6.0, 1.0)

但我的代码显示:

(0.0, '', '', '', '', 'Safra', 6.0, 1.0)

不显示任何结果的字段是VARCHAR2类型。将显示字符串“Safra”,但在我的查询中它是硬编码的。你知道吗

我尝试了其他表,但问题是相同的(只返回数字字段)。你知道吗

可能会发生什么?你知道吗


Tags: importsqloscode数字jpypecnjar