sql - 为什么我在 PL SQL 包中遇到 Declare Identifier 和许多其他错误?

标签 sql oracle plsql

我正在尝试在 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_statmentsv_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/

相关文章:

oracle - Oracle中存储过程的object_id存储在哪里?

sql - 在 Oracle 数据库中查找键是否存在的最快方法

sql - 如何统计表中某列的每个值?

具有嵌套组函数的 SQL

mysql - 获取当前更新的列名称以在触发器中使用

sql - 在 Oracle 中打开 OFF 等效的 IDENTITY INSERT

C++ 在 Linux 中访问 Oracle

mysql - PL/MySQL 存在吗?

java - MyBatis 执行获取并基于返回值在 Xxxmapper.xml 中执行更新/插入?

c# - SqlBulkCopy 不工作,没有错误