I have two sql file.one is "function.sql" and another is "donor.sql". "donor.sql" has a package "AddDonor" and "add_donor" function.This is the code :
create or replace package AddDonor as
function add_donor(id in Donation.id%TYPE,d_id in Donor.d_id%TYPE,p_id in Participant.p_id%TYPE,name in Donor.name%TYPE,age in Donor.age%TYPE,gender in Donor.gender%TYPE,bg in Donor.bg%TYPE,branch in Donor.branch%TYPE,contactno in Donor.contactno%TYPE,status in Donation.status%TYPE,c_id in Campaign.c_id%TYPE)
return number;
end AddDonor;
/
create or replace package body AddDonor as
function add_donor(id in Donation.id%TYPE,d_id in Donor.d_id%TYPE,p_id in Participant.p_id%TYPE,name in Donor.name%TYPE,age in Donor.age%TYPE,gender in Donor.gender%TYPE,bg in Donor.bg%TYPE,branch in Donor.branch%TYPE,contactno in Donor.contactno%TYPE,status in Donation.status%TYPE,c_id in Campaign.c_id%TYPE)
return number
is
flag number:=0;
BEGIN
flag := add_donor1(d_id, name, age,gender,bg,branch,contactno);
return flag;
END add_donor;
End AddDonor;
/
"function.sql" has "adddonor1" function.This function is not part of any package."adddonor1" is a stand alone function from "function.sql" file.This is the code:
create or replace function add_donor1(id in Donation.id%TYPE,d_id in Donor.d_id%TYPE,p_id in Participant.p_id%TYPE,name in Donor.name%TYPE,age in Donor.age%TYPE,gender in Donor.gender%TYPE,bg in Donor.bg%TYPE,branch in Donor.branch%TYPE,contactno in Donor.contactno%TYPE,status in Donation.status%TYPE,c_id in Campaign.c_id%TYPE)
return number
is
BEGIN
insert into Donor values(d_id, name, age,gender,bg,branch,contactno);
insert into Donation values(id,d_id,status);
insert into Participant values(p_id,c_id, d_id,name,bg);
insert into Donor@server_link values(d_id, name, age,gender,bg,branch,contactno);
insert into Donation@server_link values(id,d_id,status);
insert into Participant@server_link values(p_id,c_id, d_id,name,bg);
return 1;
END add_donor1;
/
commit;
I want to call "add_donor1" from "function.sql" inside the package "AddDonor" and package function "add_donor" from "donor.sql" file
I have tried this :
flag := add_donor1(d_id, name, age,gender,bg,branch,contactno);
But it shows :
8/3 PL/SQL: SQL Statement ignored
8/10 PL/SQL: ORA-00904:"FUNCTIONS"."ADD_DONOR1": invalid identifier
How can I call a function from a pl/sql file inside a package function of another pl/sql file using PL/SQL (Oracle 10g) How to solve this?