How to check multiple 'or' conditions and 'not equal to' in IF statement?
723451Sep 25 2009 — edited Sep 25 2009Hi:
I have written following script:
DECLARE
procedure pro_bpartner_master Is
kr_bpartnerid integer;
last_bpartner_id number(10,0);
villageid number(10,0);
genderid number(10,0);
genderinitial char(2);
CURSOR comp_cur IS select * from com_person_master ;
comp_rec comp_cur%ROWTYPE;
BEGIN
OPEN comp_cur;
FETCH comp_cur INTO comp_rec;
WHILE comp_cur%FOUND
LOOP
kr_bpartnerid:= comp_rec.person_id;
select crayom_db.cr_idbackup.cr_vilageid into villageid from crayom_db.cr_idbackup where crayom_db.cr_idbackup.kr_vilageid = comp_rec.village_ID;
select crayom_db.c_greeting.c_greeting_id into genderid from crayom_db.c_greeting where crayom_db.c_greeting.CR_Initial=comp_rec.Gender;
if (comp_rec.created_by != 0 or comp_rec.date_created != 0 or comp_rec.modified_by != 0 or comp_rec.date_modified != 0) Then
insert into crayom_db.C_Bpartner(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby,name,C_GREETING_ID,c_village_id,cr_name_ma) values(11,11,'Y',comp_rec.DATE_CREATED,comp_rec.CREATED_BY,comp_rec.DATE_MODIFIED,comp_rec.MODIFIED_BY,comp_rec.FNAME_EN || comp_rec.MNAME_EN || comp_rec.LNAME_EN,genderid,villageid,comp_rec.FNAME_MA || comp_rec.MNAME_MA || comp_rec.LNAME_MA);
else
insert into crayom_db.C_Bpartner(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby,name,C_GREETING_ID,c_village_id,cr_name_ma) values(11,11,'Y',sysdate,100,sysdate,11,comp_rec.FNAME_EN || comp_rec.MNAME_EN || comp_rec.LNAME_EN,genderid,villageid,comp_rec.FNAME_MA || comp_rec.MNAME_MA || comp_rec.LNAME_MA);
End If;
COMMIT;
select crayom_db.C_BPartner.C_BPartner_id into last_bpartner_id from crayom_db.C_BPartner where rownum=1 ORDER BY crayom_db.c_bpartner.c_bpartner_id DESC;
insert into crayom_db.CR_IdBackup(kr_bpartnerid,cr_bpartnerid) values(kr_bpartnerid, last_bpartner_id);
dbms_output.put_line(last_bpartner_id);
FETCH comp_cur INTO comp_rec;
End LOOP;
close comp_cur;
END;
BEGIN
pro_bpartner_master();
END;
In above script i have written IF statement using multiple or conditions.
But i am getting following error:
Error starting at line 1 in command:
DECLARE
procedure pro_bank_master Is
kr_bankid integer;
last_bank_id number(10,0);
CURSOR comp_cur IS select bank_id,date_created,created_by,modified_by,name_en from COM_BANK_MASTER ;
comp_rec comp_cur%ROWTYPE;
BEGIN
OPEN comp_cur;
FETCH comp_cur INTO comp_rec;
WHILE comp_cur%FOUND
LOOP
kr_bankid:= comp_rec.bank_id;
insert into crayom_db.C_Bank(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, name, routingno, c_location_id, swiftcode, isownbank, description) values(11,11,'Y',sysdate,100,sysdate,11,comp_rec.name_en,'A',1000009,'A','Y','A');
select crayom_db.C_Bank.c_bank_id into last_bank_id from crayom_db.C_Bank where rownum=1 ORDER BY crayom_db.c_bank.c_bank_id DESC;
insert into crayom_db.CR_IdBackup(kr_talukaid, cr_talukaid) values(kr_bankid, last_bank_id);
FETCH comp_cur INTO comp_rec;
End LOOP;
close comp_cur;
END;
procedure pro_taluka_master Is
kr_talukaid integer;
last_taluka_id number(10,0);
CURSOR comp_cur IS select * from com_taluka_master ;
comp_rec comp_cur%ROWTYPE;
BEGIN
OPEN comp_cur;
FETCH comp_cur INTO comp_rec;
WHILE comp_cur%FOUND
LOOP
kr_talukaid:= comp_rec.taluka_id;
insert into crayom_db.C_Taluka(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby, name, c_city_id, cr_name_ma) values(11,11,'Y',sysdate,100, sysdate, 11,comp_rec.name_en,100,comp_rec.NAME_MA);
COMMIT;
select crayom_db.C_Taluka.c_taluka_id into last_taluka_id from crayom_db.C_Taluka where rownum=1 ORDER BY crayom_db.c_taluka.c_taluka_id DESC;
insert into crayom_db.CR_IdBackup(kr_talukaid,cr_talukaid) values(kr_talukaid, last_taluka_id);
FETCH comp_cur INTO comp_rec;
End LOOP;
close comp_cur;
END;
procedure pro_village_master Is
kr_villageid integer;
last_village_id number(10,0);
talukaid number(10,0);
CURSOR comp_cur IS select * from com_village_master ;
comp_rec comp_cur%ROWTYPE;
BEGIN
OPEN comp_cur;
FETCH comp_cur INTO comp_rec;
WHILE comp_cur%FOUND
LOOP
kr_villageid:= comp_rec.village_id;
select crayom_db.cr_idbackup.cr_talukaid into talukaid from crayom_db.cr_idbackup where crayom_db.cr_idbackup.kr_talukaid = comp_rec.TALUKA_ID;
insert into crayom_db.C_Village(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby,C_TALUKA_ID, name,postal, cr_name_ma) values(11,11,'Y',sysdate,100, sysdate, 11,talukaid,comp_rec.NAME_EN,comp_rec.pincode,comp_rec.NAME_MA);
COMMIT;
select crayom_db.C_Village.C_village_id into last_village_id from crayom_db.C_Village where rownum=1 ORDER BY crayom_db.c_village.c_village_id DESC;
/*select max(crayom_db.C_Village.C_village_id) into last_village_id from crayom_db.C_Village;*/
insert into crayom_db.CR_IdBackup(kr_vilageid,cr_vilageid) values(kr_villageid, last_village_id);
dbms_output.put_line(last_village_id);
FETCH comp_cur INTO comp_rec;
End LOOP;
close comp_cur;
END;
procedure pro_bpartner_master Is
kr_bpartnerid integer;
last_bpartner_id number(10,0);
villageid number(10,0);
genderid number(10,0);
genderinitial char(2);
CURSOR comp_cur IS select * from com_person_master ;
comp_rec comp_cur%ROWTYPE;
BEGIN
OPEN comp_cur;
FETCH comp_cur INTO comp_rec;
WHILE comp_cur%FOUND
LOOP
kr_bpartnerid:= comp_rec.person_id;
select crayom_db.cr_idbackup.cr_vilageid into villageid from crayom_db.cr_idbackup where crayom_db.cr_idbackup.kr_vilageid = comp_rec.village_ID;
select crayom_db.c_greeting.c_greeting_id into genderid from crayom_db.c_greeting where crayom_db.c_greeting.CR_Initial=comp_rec.Gender;
if (comp_rec.created_by != 0 or comp_rec.date_created != 0 or comp_rec.modified_by != 0 or comp_rec.date_modified != 0) Then
insert into crayom_db.C_Bpartner(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby,name,C_GREETING_ID,c_village_id,cr_name_ma) values(11,11,'Y',comp_rec.DATE_CREATED,comp_rec.CREATED_BY,comp_rec.DATE_MODIFIED,comp_rec.MODIFIED_BY,comp_rec.FNAME_EN || comp_rec.MNAME_EN || comp_rec.LNAME_EN,genderid,villageid,comp_rec.FNAME_MA || comp_rec.MNAME_MA || comp_rec.LNAME_MA);
else
insert into crayom_db.C_Bpartner(ad_client_id, ad_org_id, isactive, created, createdby, updated, updatedby,name,C_GREETING_ID,c_village_id,cr_name_ma) values(11,11,'Y',sysdate,100,sysdate,11,comp_rec.FNAME_EN || comp_rec.MNAME_EN || comp_rec.LNAME_EN,genderid,villageid,comp_rec.FNAME_MA || comp_rec.MNAME_MA || comp_rec.LNAME_MA);
End If;
COMMIT;
select crayom_db.C_BPartner.C_BPartner_id into last_bpartner_id from crayom_db.C_BPartner where rownum=1 ORDER BY crayom_db.c_bpartner.c_bpartner_id DESC;
/*select max(crayom_db.C_Village.C_village_id) into last_village_id from crayom_db.C_Village;*/
insert into crayom_db.CR_IdBackup(kr_bpartnerid,cr_bpartnerid) values(kr_bpartnerid, last_bpartner_id);
dbms_output.put_line(last_bpartner_id);
FETCH comp_cur INTO comp_rec;
End LOOP;
close comp_cur;
END;
BEGIN
pro_bpartner_master();
END;
Error report:
ORA-06550: line 124, column 55:
PLS-00306: wrong number or types of arguments in call to '!='
ORA-06550: line 124, column 1:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Can any body help me?
Thank You
Edited by: anupdesai1248@rediff.com on Sep 24, 2009 9:15 PM