4est
4est

Reputation: 3168

Procedure checking set up parameters (PL/SQL, ORACLE)

In the package I have couple of procedure that set global variables, example below:

...
 PROCEDURE setA (pp IN VARCHAR2)
    IS BEGIN global_vName := pp; END;

 PROCEDURE setB (qq IN VARCHAR2)
    IS BEGIN global_vColor := qq; END;

 FUNCTION getA RETURN VARCHAR2
    IS BEGIN RETURN global_vName; END;

 FUNCTION getB RETURN VARCHAR2
    IS BEGIN RETURN global_vColor; END;
...

Now in the PL/SQL block I'm doing test if they are working correclty:

Begin
 mypack.setA('NameA');
 mypack.setB('ColorB');
End;

How to write a procedure that will check if global_vName and global_vColor are set up?

If they are null procedure should return exception. Please help.

Upvotes: 0

Views: 98

Answers (2)

Dmitriy
Dmitriy

Reputation: 5565

There is no possibility to execute some code after the end statement - you should write it explicitly if you need additional check. As I understand, you want be sure that global variables are always initialized, so you can use the package initialization:

create or replace package body mypack as 

 PROCEDURE setA (pp IN VARCHAR2)
    IS BEGIN global_vName := pp; END;

 PROCEDURE setB (qq IN VARCHAR2)
    IS BEGIN global_vColor := qq; END;

 FUNCTION getA RETURN VARCHAR2
    IS BEGIN RETURN global_vName; END;

 FUNCTION getB RETURN VARCHAR2
    IS BEGIN RETURN global_vColor; END;

< here are your other functions and procedures >

begin
  -- here is an initialization section
  setA('NameA');
  setB('ColorB');
end mypack;

The initialization section will be executed automatically by Oracle before the first user's call to package (function, procedure, cursor, variable, etc.). So you can be sure that your variables are always initialized.

Upvotes: 0

Wernfried Domscheit
Wernfried Domscheit

Reputation: 59456

Do you mean this?

FUNCTION getA RETURN VARCHAR2 IS 
BEGIN 
   IF global_vName IS NULL THEN
      RAISE NO_DATA_FOUND;
   END IF;
   RETURN global_vName; 
END;

Upvotes: 1

Related Questions