|
| Oracle - mystisk package compile problem Fra : Martin M. Pedersen |
Dato : 17-12-07 17:14 |
|
Hejsa,
Jeg kan simpelthen ikke forstå, hvorfor flg. koden ikke vil compile ?
Nogle gode forslag ?
Mvh
Martin
SQL> !cat formtype.pkg
CREATE OR REPLACE PACKAGE formtype AS
FUNCTION get_formtype (job_id IN NUMBER) RETURN VARCHAR2;
PROCEDURE set_formtype (job_id IN NUMBER);
END;
/
CREATE OR REPLACE PACKAGE BODY formtype AS
FUNCTION get_formtype (job_id IN NUMBER) RETURN VARCHAR2 IS
result VARCHAR2(2000);
BEGIN
result:=opdd.obj_job.initialise(job_id,1);
IF (result='Success') THEN
RETURN opdd.obj_job.form_type;
ELSE
RETURN NULL;
END IF;
END;
PROCEDURE set_formtype (job_id IN NUMBER) IS
result VARCHAR2(2000);
f_id NUMBER;
BEGIN
result:=opdd.obj_job.initialise(job_id,1);
IF (result='Success') THEN
SELECT id INTO f_id FROM formtypes WHERE
formtype=opdd.obj_job.form_type;
UPDATE tickets SET formtype=f_id;
COMMIT;
ELSE
NULL;
END IF;
END;
END;
/
SQL> @formtype.pkg
Package created.
Warning: Package Body created with compilation errors.
SQL> show errors
Errors for PACKAGE BODY FORMTYPE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
6/5 PL/SQL: Statement ignored
6/13 PLS-00201: identifier 'OPDD.OBJ_JOB' must be declared
8/7 PL/SQL: Statement ignored
8/14 PLS-00201: identifier 'OPDD.OBJ_JOB' must be declared
18/5 PL/SQL: Statement ignored
18/13 PLS-00201: identifier 'OPDD.OBJ_JOB' must be declared
SQL> desc OPDD.OBJ_JOB
FUNCTION AUTOMATIC_DESPATCH RETURNS VARCHAR2
FUNCTION AUTOMATIC_PRE_DESPATCH_PROCESS RETURNS VARCHAR2
FUNCTION AUTOMATIC_PRE_PRINT_QA RETURNS VARCHAR2
FUNCTION AUTOMATIC_PRINT RETURNS VARCHAR2
FUNCTION AUTOMATIC_PROCESS RETURNS VARCHAR2
FUNCTION AUTOMATIC_REPRINT_PROCESS RETURNS VARCHAR2
[...]
| |
Steen Suder (18-12-2007)
| Kommentar Fra : Steen Suder |
Dato : 18-12-07 22:48 |
|
Martin M. Pedersen wrote:
> Hejsa,
> Jeg kan simpelthen ikke forstå, hvorfor flg. koden ikke vil compile ?
> Nogle gode forslag ?
<KLIP>
> Warning: Package Body created with compilation errors.
>
> SQL> show errors
> Errors for PACKAGE BODY FORMTYPE:
>
> LINE/COL ERROR
> -------- -----------------------------------------------------------------
> 6/5 PL/SQL: Statement ignored
> 6/13 PLS-00201: identifier 'OPDD.OBJ_JOB' must be declared
<KLIP>
Jeg aner intet om Oracle og er en dårlig programmør, men...
Baseret på hvad fejlen angives til at være, mangler der så ikke en eksplicit
erklæring af OPDD.OBJ_JOB - evt. et niveau eller to længere ude
virkefeltsmæssigt?
--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.
| |
Martin M. Pedersen (26-12-2007)
| Kommentar Fra : Martin M. Pedersen |
Dato : 26-12-07 19:04 |
|
Steen Suder wrote:
> Martin M. Pedersen wrote:
>
>> Hejsa,
>> Jeg kan simpelthen ikke forstå, hvorfor flg. koden ikke vil compile ?
>> Nogle gode forslag ?
>
> <KLIP>
>
>
>> Warning: Package Body created with compilation errors.
>>
>> SQL> show errors
>> Errors for PACKAGE BODY FORMTYPE:
>>
>> LINE/COL ERROR
>> -------- -----------------------------------------------------------------
>> 6/5 PL/SQL: Statement ignored
>> 6/13 PLS-00201: identifier 'OPDD.OBJ_JOB' must be declared
>
> <KLIP>
>
>
> Jeg aner intet om Oracle og er en dårlig programmør, men...
>
> Baseret på hvad fejlen angives til at være, mangler der så ikke en eksplicit
> erklæring af OPDD.OBJ_JOB - evt. et niveau eller to længere ude
> virkefeltsmæssigt?
>
Jeg glemte at man godt kan se opdd.ob_job, selvom man ingen rettigheder
overhovedet har til objektet.
grant all on obj_job to billing; løste problemet.
/Martin
| |
|
|