繁体   English   中英

Python 和 CX_Oracle 无效的 SQL 语句

[英]Python and CX_Oracle Invalid SQL Statement

我正在编写一个 Python 脚本来从 Oracle 获取一些值,但是在中间我必须为一个包设置一个 ID,以便它可以使用我想要的数据创建相应的视图。

我正在尝试执行:

ora_query = cursor.execute("EXECUTE VW_WEEKLY_CALL_LOG_PKG.SET_COMPANY_ID(P_COMPANY_ID => '1111111111')")

它返回给我:

cx_Oracle.DatabaseError: ORA-00900: invalid SQL statement

在 SQL Developer 中,我可以使用这个执行语句,它给了我结果。 我使用 cursor.execute 错误吗?

这是包:

create or replace package VW_WEEKLY_CALL_LOG_PKG as
  procedure SET_COMPANY_ID(P_COMPANY_ID VARCHAR2);

  function GET_COMPANY_ID
    return VARCHAR2;
    
end VW_WEEKLY_CALL_LOG_PKG;

这是包体:

create or replace package body VW_WEEKLY_CALL_LOG_PKG as
  G_COMPANY_ID   VARCHAR2(255);


  procedure SET_COMPANY_ID(P_COMPANY_ID VARCHAR2) as
  begin
    G_COMPANY_ID := P_COMPANY_ID;
  end;

  function GET_COMPANY_ID
    return VARCHAR2 is
  begin
    return G_COMPANY_ID;
  end;

  
end VW_WEEKLY_CALL_LOG_PKG;

您提供的语句不是有效的 SQL 语句。 它是一个 SQL*Plus 命令。 你想做这样的事情:

company_id = '1111111111'
cursor.callproc('VW_WEEKLY_CALL_LOG_PKG.SET_COMPANY_ID', [company_id])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM