簡體   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