我正在尝试在 Toad 中创建 PL SQL 包。我点击“编译为脚本”。它说包已创建但有编译错误;我收到了这个巨大的错误列表,但我想从第一个开始。
这是我的代码的前几行(包很大,显然不想全部发布)
CREATE OR REPLACE PACKAGE cop_cow_scripts AS
TYPE arr_claims_t IS VARRAY(15000) OF VARCHAR2(10);
TYPE arr_sql_t IS VARRAY(500) OF VARCHAR2(1000);
-- declaring procedure that will call COP_DATALOAD_V2 and COW_DATALOAD
PROCEDURE COP_COW_DATALOAD_V2(claims_array arr_claims_t, sql_array arr_sql_t);
END cop_cow_scripts;
CREATE OR REPLACE PACKAGE BODY cop_cow_scripts AS
sql_statments arr_sql := arr_sql();--initialize a empty lis
/* PROCEDURE AND VARIABLE
INITILIZATION FOR COW_DATALOAD_V2
/***************************************************************************/
--*********** PUT YOUR LIST OF CERTS BELOW ******************
v_certList arr_claims := arr_claims('3803617642', '3805126441', '3876849047'
, '3873116383', '3873306670', '3878876718');
--COP VARIABLES---
new_copId number; --NEW COP ID
prod_copId number; --PROD COP ID
new_seq_id number; --NEW SEQ ID
suppl_count number; --supplemental count
v_SQL varchar2(7000);
v_certLst varchar2(2000);
n_success NUMBER := 0; --Count of success found
n_total NUMBER := 0; --Total Records proccessed
n_suppl NUMBER := 0; --Total Records proccessed
n_orders NUMBER := 0; --Total lmso orders downloaded
/*cop procedure*/
PROCEDURE COP_DATALOAD_V2(arr_claims arr_claims_t, arr_sql arr_sql_t)
IS
在此之后,我定义了我的第一个过程。
我遇到的两种主要错误是: 4/19 PLS-00201:必须声明标识符“ARR_SQL” 4/19 PL/SQL:忽略项目 12/16 PLS-00201:必须声明标识符“ARR_CLAIMS” 12/16 PL/SQL:忽略项目 42/14 PLS-00320:此表达式的类型声明不完整或格式错误
...等等。
我对 pl sql 很陌生。我什至不确定 4/19 或 12/16 是什么意思,因为它们似乎与行号不对应。
我在制作包裹时做错了什么?
最佳答案
问题似乎很简单,您声明的 sql_statments
和 v_certList
变量类型错误(缺少“_t
”):
正确的声明是:
sql_statments arr_sql_t := arr_sql_t();--initialize a empty lis
v_certList arr_claims_t := arr_claims_t('3803617642', '3805126441', '3876849047'
, '3873116383', '3873306670', '3878876718');
关于sql - 为什么我在 PL SQL 包中遇到 Declare Identifier 和许多其他错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101473/