在 pl sql 中读取包过程中的文件
Read a file inside a package procedure in pl sql
我正在尝试读取 Pl Sql 过程中的文本文件,但无济于事 -- 似乎有语法错误。我究竟做错了什么?我怀疑我没有在我应该去的地方宣布一些事情。这是包体的第一个路径:
CREATE OR REPLACE PACKAGE BODY COP_DBO.PACKAGE_TEMPLATE
AS
--
--*****************************************************************************************************
-- Purpose: Just a template
--
-- Inputs:
-- in_vSTR String
--
-- Returns:
-- None
--
-- Mod History:
-- 06/29/2016 KEvin Palmer - Created initial version of this procedure
--
-- Error Handling:
-- An error is raised if errors are encountered building or executing the SQL.
--
--*****************************************************************************************************
f UTL_FILE.FILE_TYPE;
s VACHAR2(200);
BEGIN
f := UTL_FILE.FOPEN('\sp0034avrt\winixdb$\cow\dev', 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FLCOSE(f);
dbms_outpit.put_line(s);
end;
sql_statments arr_sql_t := arr_sql_t(); --initialize a empty lis
--------------------------------------------------------------------------------
/* PROCEDURE AND VARIABLE
INITILIZATION FOR COW_DATALOAD_V2
/***************************************************************************/
------------------------------------------------------------------------------
--*********** PUT YOUR LIST OF CERTS BELOW ******************
v_certList arr_claims_t := arr_claims_t('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) AS
BEGIN
之后开始我有两个程序。文件内容结束后的所有内容都以某种类型的语法错误突出显示。我做错了什么?
编辑:这个问题如何与其他问题重复?我没看到。对不起,如果它很明显。我根本看不出相似之处。
典型的包体声明如下所示
create or replace package body package_name is
var_name number;
procedure proc_name is
begin
do_smth;
end;
begin
init_smth;
end ;
变量、方法、初始化。在您的代码中相反:
create or replace package body package_name is
var_name number;
begin
init_smth;
end ;
var_name2 number;
procedure proc_name is
begin
...
变量,初始化,再次变量,方法。看起来你应该把代码放在正确的地方
我正在尝试读取 Pl Sql 过程中的文本文件,但无济于事 -- 似乎有语法错误。我究竟做错了什么?我怀疑我没有在我应该去的地方宣布一些事情。这是包体的第一个路径:
CREATE OR REPLACE PACKAGE BODY COP_DBO.PACKAGE_TEMPLATE
AS
--
--*****************************************************************************************************
-- Purpose: Just a template
--
-- Inputs:
-- in_vSTR String
--
-- Returns:
-- None
--
-- Mod History:
-- 06/29/2016 KEvin Palmer - Created initial version of this procedure
--
-- Error Handling:
-- An error is raised if errors are encountered building or executing the SQL.
--
--*****************************************************************************************************
f UTL_FILE.FILE_TYPE;
s VACHAR2(200);
BEGIN
f := UTL_FILE.FOPEN('\sp0034avrt\winixdb$\cow\dev', 'certs_file.txt', 'R');
UTL_FILE.GET_LINE(f,s);
UTL_FILE.FLCOSE(f);
dbms_outpit.put_line(s);
end;
sql_statments arr_sql_t := arr_sql_t(); --initialize a empty lis
--------------------------------------------------------------------------------
/* PROCEDURE AND VARIABLE
INITILIZATION FOR COW_DATALOAD_V2
/***************************************************************************/
------------------------------------------------------------------------------
--*********** PUT YOUR LIST OF CERTS BELOW ******************
v_certList arr_claims_t := arr_claims_t('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) AS
BEGIN
之后开始我有两个程序。文件内容结束后的所有内容都以某种类型的语法错误突出显示。我做错了什么?
编辑:这个问题如何与其他问题重复?我没看到。对不起,如果它很明显。我根本看不出相似之处。
典型的包体声明如下所示
create or replace package body package_name is
var_name number;
procedure proc_name is
begin
do_smth;
end;
begin
init_smth;
end ;
变量、方法、初始化。在您的代码中相反:
create or replace package body package_name is
var_name number;
begin
init_smth;
end ;
var_name2 number;
procedure proc_name is
begin
...
变量,初始化,再次变量,方法。看起来你应该把代码放在正确的地方