不使用任何参数在oracle中执行过程

时间:2019-03-14 13:41:10

标签: oracle plsql

我在oracle中具有以下过程:

with open('filename.csv', 'r', encoding="latin-1") as csvfile:
    readCSV=csv.reader(csvfile, delimiter=',')

row_count=sum(1 for row in readCSV)
print(row_count)
for row in readCSV:
   print(row[1])

此过程没有任何输入或输出参数,我正尝试执行以下过程:

import os
a ="foldername"
os.listdir(a)

我尝试的另一种方法是:

CREATE OR REPLACE PROCEDURE usp_Templates_Load_TruncateRawTables
AS
BEGIN

EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTEMPLATES_LOAD_OTHEROBJECTS_RAW';
EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTEMPLATES_LOAD_NOTES_RAW';
EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTMPLTS_LOAD_INCSTATEMT_RAW';
EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTMPLTS_LOAD_BALANCESHEET_RAW';
EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTEMPLATES_LOAD_OTHERBANK_RAW';
END;

但是两次,我都收到错误消息:

ORA-00942:表或视图不存在

ORA-06512:位于“ TC_OWNER.USP_TEMPLATES_LOAD_TRUNCATERAWTABLES”的第8行

ORA-06512:在第1行

如何正确执行此过程以获取正确的输出。

1 个答案:

答案 0 :(得分:0)

解决方案1-添加所有者/方案名称

CREATE OR REPLACE PROCEDURE TC_OWNER.usp_Templates_Load_TruncateRawTables
AS
BEGIN

    EXECUTE IMMEDIATE 'TRUNCATE TABLE schema2.TBLTEMPLATES_LOAD_OTHEROBJECTS_RAW';
    . . . . 
END;

方案可以不同,只要执行模式具有执行模式的权限即可。我为视觉效果添加了TC_OWNER.usp_Tem...

解决方案2-以这些表的所有者身份执行

connect schema2/password @sid

执行

BEGIN

    EXECUTE IMMEDIATE 'TRUNCATE TABLE TBLTEMPLATES_LOAD_OTHEROBJECTS_RAW';
    . . . . 
END;