无法在cx_oracle中“关闭设置”;

时间:2019-08-13 02:08:53

标签: python cx-oracle

我正在尝试从python执行一些SQL语句,但是在以下SQL行中遇到了问题:

将定义关闭;

其他SQL语句不存在此类问题。

def Querydf(command_str, dsn_str, username, pw):  
    #function outputs data as a pandas dataframe
    conn = cx_Oracle.connect(user = username, password = pw, dsn=dsn_str)
    cursor = conn.cursor()

    cmd = command_str.split(";")
    if (len(cmd)>1):
        for i in cmd:
            temp = i.replace("\n","")
            print(temp)
            cursor.execute(temp)
    else:
        cursor.execute(command_str)

    Data = cursor.fetchall()
    col_names = []
    for i in range(0, len(cursor.description)):
        col_names.append(cursor.description[i][0])
    dataframe =  pd.DataFrame(data = Data, columns = col_names)
    cursor.close()
    conn.close()
    return dataframe

返回的错误是: cx_Oracle.DatabaseError:ORA-00922:缺少选项或选项无效

如果任何人都可以对此提供一些见解,那太好了,谢谢!

1 个答案:

答案 0 :(得分:0)

命令“ set define off”不是SQL语句,而是SQL * Plus语句。因此,它只能在SQL * Plus中执行。由于cx_Oracle仅处理SQL语句,因此无论如何都不需要此命令!如果您正在读取的文件中包含通常由SQL * Plus运行的SQL语句,则需要将这些语句过滤掉。