Help executing MWB generated Procedure
CREATE OR REPLACE PROCEDURE "SA"."GETBENLIST" (
in_EmployeeID IN NUMBER DEFAULT NULL,
RC1 IN OUT Omwb_emulation.globalPkg.RCT1)
AS
EmployeeID NUMBER(10,0);
StoO_selcnt INTEGER;
StoO_error INTEGER;
StoO_rowcnt INTEGER;
StoO_crowcnt INTEGER := 0;
StoO_fetchstatus INTEGER := 0;
StoO_errmsg VARCHAR2(255);
StoO_sqlstatus INTEGER;
BEGIN
GetBenList.EmployeeID := GetBenList.in_EmployeeID;
BEGIN
OPEN RC1 FOR
SELECT b.LineID
, b.BenType
, b.planid
, p.name
, b.lastname "last_name"
, b.firstname "first_name"
, b.MI "MI"
, b.Relation
, b.Relation
, b.percent
, bp.issecondary
FROM BenWork b, plans p, BenWorkPlans bp
WHERE (b.PlanID = p.PlanID) AND (b.employeeid = bp.employeeid
AND b.planid = bp.planid and b.bentype = bp.bentype) AND
(b.EmployeeID = GetBenList.EmployeeID)
ORDER BY b.PlanID , b.BenType ;
END;
END GetBenList
;
DUPLICATE THREAD!
https://forums.oracle.com/forums/message.jspa?messageID=10594928#10594928
You already posted this question in the thread above so please mark this new thread ANSWERED and continue to use your previous thread.
You also did not mention this thread which deals with exactly the same code.
Re: List of Records as Input - Stored Procedure
Similar Messages
-
Help Execute simple Stored Procedure - (please)
When calling a simple Procedure from SQL Developer I am unable effectively utilize a value I am passing in. From a Worksheet I press 'Run Script' which executes this:
DECLARE
TICKET_ID NUMBER;
v_Return VARCHAR2(200);
BEGIN
TICKET_ID := NULL;
v_Return := GET_LOGISTIC_INFO(TICKET_ID => 1900710);
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;
The following stored procedure:
CREATE OR REPLACE
function get_logistic_info(ticket_id IN NUMBER) RETURN VARCHAR2 IS
ret_name VARCHAR2(256);
BEGIN
--Not Working
select logistics_method_id INTO ret_name from stub_trans where id=ticket_id;
--Works!
--select logistics_method_id INTO ret_name from stub_trans where id=1900710;
return ret_name;
END;
When I hard code the ticket_id the Procedures runs just fine but when I try and utilized the passed in variable I get the error message:
ORA-01403: no data found
The record exists because if I use the hard-coded value I get a proper return:
anonymous block completed
v_Return = 4
Any ideas?Is there a separate column in the stub_trans table called ticket_id? If there is, then you are just running the following (regardless of what you pass as the parameter):
select stub_trans.logistics_method_id INTO ret_name from stub_trans where stub_trans.id=stub_trans.ticket_id;
If this is the case, then either rename you parameter:
function get_logistic_info(p_ticket_id IN NUMBER) RETURN VARCHAR2 IS
or you can force PL/SQL to use the parameter, by referencing it more fully in your SQL, ie:
select logistics_method_id INTO ret_name from stub_trans where id=get_logistic_info.ticket_id; -
Help required in executing the stored procedure and capturing the responce
Hi,
I have to execute a stored procedure in oracle database and if it successful then have to create a status IDOC.
The stored procedure may throw an exception(it is not an out parameter), in such cases i should capture the exception as part of the response message and send this information while creating the status IDOC.
i would like if the below is possible.
As the stored procedure is not returning( this means if you execute the procedure manually it will display the result), will it be possible to capture the result which has the exception details?
any direction to this will be highly appreciated.
Many thanks.
Regards,
Rahul@Bhaskar,
i need to execute the procedure by sending the input data from a file and capture the result after executing the procedure to create a status idoc
im not sure how the provided links helps me here.
i m not looking for any look ups. i would like to know is there any way that we can capture the result after executing the database procedure?
Edited by: Rahul_10416 on Dec 5, 2011 10:07 PM -
Execute a stored procedure from a JSP.(Help...)
How can I execute a stored procedure from a JSP.
Wich tags I need to use ???
I'm using the oracle thin JDBC.
please help me.
null<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Mario Bellido ([email protected]):
How can I execute a stored procedure from a JSP.
Wich tags I need to use ???
I'm using the oracle thin JDBC.
please help me.<HR></BLOCKQUOTE>
I just try a simple call with a data tag just like this (see category.jsp in the onlineorder example provided with Jdev 3.2.3):
<!-- Tutorial - ApplicationModule Tag -->
<%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
<jbo:ApplicationModule configname="OnlineOrders.OnlineOrdersModule.LocalConfig" id="OnlineOrdersModule" username="BC4J" password="BC4J" />
<!-- Tutorial - DataSource Tag -->
<jbo:DataSource id="category" appid="OnlineOrdersModule" viewobject="CategoryView" ></jbo:DataSource>
<jbo:ExecuteSQL appid="OnlineOrdersModule" >
insert into tablejsp values ('testtable')
</jbo:ExecuteSQL>
<jbo:ExecuteSQL appid="OnlineOrdersModule" >
call testjsp()
</jbo:ExecuteSQL>
<jbo:Commit appid="OnlineOrdersModule" />
testjsp is a stored PL/SQL procedure without arguments.
null -
Problem fixing compile error in wm generated procedure
Dear OWM Wizards,
I have made an error in an update trigger during a BeginDDL and CommitDDL session:
exec dbms_wm.BeginDDL('TABLE1');
exec dbms_wm.BeginDDL('TABLE2');
create or replace trigger table1_ut
before update
on table1_lts
for each row
begin
update table2_lts
set ....
end;
exec dbms_wm.CommitDDL('TABLE2');
exec dbms_wm.CommitDDL('TABLE1');
Note the _lts* in the update above.
The last command succeed with complie errors, but left the table in CDDL state.
Using the information Unable to run BeginDDL on a version enabled table on OWM 9.2.0.8, I was able to bring the table back into "VERSIONED" state (using ignore_last_error => true in CommitDDL).
Now I have a wm$table1_ut procedure referencing a non-existing table2_lts and am unable to start a ddl session on TABLE1:
$ exec dbms_wm.BeginDDL('TABLE1');
ERROR:
ORA-24344: Erfolg mit Kompilierungsfehler
ORA-06512: in "SYS.OWM_DDL_PKG", Zeile 3200
ORA-06512: in "SYS.LT", Zeile 11857
ORA-06512: in Zeile 1
$ select * from all_wm_vt_errors;
Es wurden keine Zeilen ausgewählt
TABLE1_LTS is not created. And recompiling the procedure does not work, with ORA-20037 attempt to modify a WM generated procedure
What can I do?
Any help appreciated,
Jens
Edited by: user535318 on Aug 14, 2009 5:37 AMHi,
You could have called dbms_wm.beginDDL on TABLE2 prior to executing it on TABLE1. This would have recreated the TABLE2_LTS table, allowing the trigger to be successfully created. You would then be able to redefine the trigger.
Regards,
Ben -
Need Help With a Stored Procedure
Help With a Stored Procedure
Hi everyone.
I am quite new relative to creating stored procedures, so I anticipate that whatever help I could get here would be very much helpful.
Anyway, here is my case:
I have a table where I need to update some fields with values coming from other tables. The other tables, let us just name as tblRef1, tblRef2 and tblRef3. For clarity, let us name tblToUpdate as my table to update. tblToUpdate has the following fields.
PlanID
EmployeeIndicator
UpdatedBy
CreatedBy
tblRef1, tblRef2 and tblRef3 has the following fields:
UserName
EmpIndicator
UserID
In my stored procedure, I need to perform the following:
1. Check each row in the tblToUpdate table. Get the CreatedBy value and compare the same to the UserName and UserID field of tblRef1. If no value exists in tblRef1, I then proceed to check if the value exists in the same fields in tblRef2 and tblRef3.
2. If the value is found, then I would update the EmployeeIndicator field in tblToUpdate with the value found on either tblRef1, tblRef2 or tblRef3.
I am having some trouble writing the stored procedure to accomplish this. So far, I have written is the following:
CREATE OR REPLACE PROCEDURE Proc_Upd IS v_rec NUMBER;
v_plan_no tblToUpdate.PLANID%TYPE;
v_ref_ind tblToUpdate.EMPLOYEEINDICATOR%TYPE;
v_update_user tblToUpdate.UPDATEDBY%TYPE;
v_created_by tblToUpdate.CREATEDBY%TYPE;
v_correct_ref_ind tblToUpdate.EMPLOYEEIDICATOR%TYPE;
CURSOR cur_plan IS SELECT PlanID, EmployeeIndicator, UPPER(UpdatedBy), UPPER(CreatedBy) FROM tblToUpdate;
BEGIN
Open cur_plan;
LOOP
FETCH cur_plan INTO v_plan_no, v_ref_ind, v_update_user, v_created_by;
EXIT WHEN cur_plan%NOTFOUND;
BEGIN
-- Check if v_created_by has value.
IF v_created_by IS NOT NULL THEN
-- Get the EmpIndicator from the tblRef1, tblRef2 or tblRef3 based on CreatedBy
SELECT UPPER(EmpIndicator)
INTO v_correct_ref_ind
FROM tblRef1
WHERE UPPER(USERNAME) = v_created_by
OR UPPER(USERID) = v_created_by;
IF v_correct_ref_ind IS NOT NULL THEN
-- Update the Reference Indicator Field in the table TRP_BUSPLAN_HDR_T.
UPDATE TRP_BUSPLAN_HDR_T SET ref_ind = v_correct_ref_ind WHERE plan_no = v_plan_no;
ELSIF
-- Check the Other tables here????
END IF;
ELSIF v_created_by IS NULL THEN
-- Get the EmpIndicator based on the UpdatedBy
SELECT UPPER(EmpIndicator)
INTO v_correct_ref_ind
FROM tblRef1
WHERE UPPER(USERNAME) = v_update_user
OR UPPER(USERID) = v_created_by;
IF v_correct_ref_ind IS NOT NULL THEN
-- Update the Reference Indicator Field in the table TRP_BUSPLAN_HDR_T.
UPDATE TRP_BUSPLAN_HDR_T SET ref_ind = v_correct_ref_ind WHERE plan_no = v_plan_no;
ELSIF
-- Check the Other tables here????
END IF;
END IF;
END;
END LOOP;
CLOSE cur_plan;
COMMIT;
END
Please take note that the values in the column tblToUpdate.UpdatedBy or tblToUpdate.CreatedBy could match either the UserName or the UserID of the table tblRef1, tblRef2, or tblRef3.
Kindly provide more insight. When I try to execute the procedure above, I get a DATA NOT FOUND ERROR.
Thanks.Ah, ok; I got the updates the wrong way round then.
BluShadow's single update sounds like what you need then.
I also suggest you read this AskTom link to help you see why you should choose to write DML statements before choosing to write cursor + loops.
In general, when you're being asked to update / insert / delete rows into a table or several tables, your first reaction should be: "Can I do this in SQL?" If you can, then putting it into a stored procedure is usually just a case of putting the sql statement inside the procedure header/footers - can't really get much more simple than that! *{;-) -
Strange error while executing a stored procedure: Incorrect syntax near '@p0'
All, I am getting a strange error while executing a stored procedure: Incorrect syntax near '@p0' using JDBC CallableStatment.
Here is my code...
CallableStatement cStmt = con.prepareCall("{call SET CHAINED ON EXEC <dbName>.<schemaName>.<SPName> (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
cStmt.setString(1, "2012005881");
cStmt.setString(2, "07");
cStmt.setString(3, "10");
cStmt.setString(4, "Case title");
cStmt.setString(5, "Open");
java.sql.Date dt1 = new java.sql.Date(2014,10,20);
cStmt.setDate(6, dt1);
cStmt.setString(7, "01");
cStmt.setString(8, "N");
cStmt.setString(9, "ADA Test");
cStmt.setString(10, "N");
cStmt.setString(11, "English");
cStmt.setString(12, "N");
cStmt.setString(13, "N");
cStmt.setString(14, "N");
cStmt.setString(15, "N");
cStmt.setString(16, "N");
cStmt.setString(17, "N");
cStmt.setString(18, "07");
cStmt.setString(19, "10");
cStmt.setString(20, "juache0");
java.sql.Date dt2 = new java.sql.Date(2014,10,20);
java.sql.Date dt3 = new java.sql.Date(2014,10,20);
cStmt.setDate(21, dt2);
cStmt.setDate(22, dt3);
cStmt.setString(23, "userid0");
cStmt.setString(24, "");
cStmt.setString(25, "");
cStmt.setString(26, "");
java.math.BigDecimal bg1 = new java.math.BigDecimal(10);
cStmt.setBigDecimal(27, bg1);
cStmt.setString(28, "userid");
cStmt.setString(29, "userid");
int hadResults = cStmt.executeUpdate();
Your help is greatly appreciated.
I am executing the above using Jconnect3.0 driver, inside WebSphere Application Server V8.0
Thanks
NagsNOTE: I don't work with JDBC/jConnect so (at this point) just some questions ...
1 - are you sending this to ASE, ASA, IQ, or some other RDBMS?
2 - what is the value of <schemaname>?
3 - do you have other prepareCall() instances that successfully call a stored proc? [would be interesting to see if there's a difference in the format of the calls]
A quick google search shows a couple ways to submit a stored proc execution to the RDBMS, with the format depending on the format expected by the target RDBMS.
I'm wondering if you really need/want the parentheses around the argument list, ie, what happens if you change
from
-- parentheses around args
EXEC <dbName>.<schemaName>.<SPName> ( ?,?,?,?,?,...,? )
to
-- no parentheses around args
EXEC <dbName>.<schemaName>.<SPName> ?,?,?,?,?,...,?
In ASE if I wrap the parameters in parentheses I get the same error you're getting:
================== w/ parentheses => error
1> sp_who (sa)
2> go
Msg 102, Level 15, State 1:
Server 'CC1_V1', Line 1:
Incorrect syntax near 'sa'. <<=== sa == @p0 ??
================== w/out parentheses => works
1> sp_who sa
2> go
fid spid status loginame origname ...
0 17 running sa sa ...
================== -
Executing a stored procedure using a button within a region
Hello APEX Users:
I have the task of creating a link within an apex region to execute a stored procedure from another schema using two arguments. What is the best method of executing a procedure in apex using a link or button? Thanks.
BenStop posting follow-ups to closed/old threads.
<li>Other users may ignore the thread as it appears to be closed
<li>Your assumption that the questions are related may be incorrect, leading to confusion about the nature of the problem and potential solutions.
<li>Watches on the thread may have expired, so the original participants may be unaware of the new post, or they may no longer be active on the forum
<li>APEX Phone Test
<li>You have no ability to mark posts as helpful or correct
Post your question as a new thread, including the following information:
<li>APEX version
<li>DB version and edition
<li>Web server architecture (EPG, OHS or APEX listener)
<li>Browser(s) used
<li>Theme
<li>Templates
<li>Region type
<li>Links to related posts and threads using the methods in the FAQ.
Your question has NOTHING to do with this thread.
And update your forum profile with a better handle than "862509". -
Error while executing the stored procedure
Hi All,
When I try to execute the store procedure .The store procedure does not have parameter. I am getting the following error. The store procedure has been successfully complied.
Thanks for all your help.
uday
ORA-01422: exact fetch returns more than requested number of rows
01422. 00000 - "exact fetch returns more than requested number of rows"
*Cause: The number specified in exact fetch is less than the rows returned.
*Action: Rewrite the query or change number of rows requestedHi All,
Here is the store proc and version. I do not have much exposure to pl sql store proc .
Thanks for all your support and help.
uday
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
Here is the store proc .
create or replace
PROCEDURE TEST AS
R_REGION VARCHAR2(5);
R_listing2rifs_count number;
R_listing2rifs number;
listing2iag_count number; /* mentioned already: rp0428 */
listing2iag number;
R_rod2iag_count number;
R_rod2iagnumber;
R_rod2ra_count number;
R_rod2ra number;
begin
select Region,
sum(listing2rifs_count) as listing2rifs_count,
round((sum(listing2rifs) / sum(listing2rifs_count))/30.4,1) as listing2rifs,
sum(listing2iag_count) as listing2iag_count,
round((sum(listing2iag) / sum(listing2iag_count))/30.4,1) as listing2iag,
sum(rod2iag_count) as rod2iag_count,
round((sum(rod2iag) / sum(rod2iag_count))/30.4,1) as rod2iag,
sum(rod2ra_count) as rod2ra_count,
round((sum(rod2ra) / sum(rod2ra_count))/30.4,1) as rod2ra
into R_REGION,R_listing2rifs_count,R_listing2rifs,listing2iag_count,listing2iag,
R_rod2iag_count,R_rod2iag,R_rod2ra_count,R_rod2ra
from (select site.FK_REF_REGION_CODE Region,
site.site_id,
site.EPA_ID,
site.name site_name,
FEDERAL_FACILITY_DETER_CODE,
NPL_STATUS_CODE,
site.BRAC_TYPE_NAME,
sis.FT_FLAG,
listing_action,
rifs_action,
iag_action,
rod_action,
ra_action,
listing.ACTUAL_COMPLETION_DATE as listing_date,
iag.ACTUAL_COMPLETION_DATE as iag_date,
first_rifs.ACTUAL_START_DATE as first_rifs_start_date,
first_rod.ACTUAL_COMPLETION_DATE as first_rod_date,
ra_start.ACTUAL_START_DATE as first_ra_start_date,
case when first_rifs.ACTUAL_START_DATE is not null
and listing.ACTUAL_COMPLETION_DATE is not null
then 1
else 0
end as listing2rifs_count,
first_rifs.ACTUAL_START_DATE - listing.ACTUAL_COMPLETION_DATE as listing2rifs,
case when first_rifs.ACTUAL_START_DATE is not null
and listing.ACTUAL_COMPLETION_DATE is not null
then 1
else 0
end as listing2iag_count,
iag.ACTUAL_COMPLETION_DATE - listing.ACTUAL_COMPLETION_DATE as listing2iag,
case when first_rifs.ACTUAL_START_DATE is not null
and listing.ACTUAL_COMPLETION_DATE is not null
then 1
else 0
end as rod2iag_count,
iag.ACTUAL_COMPLETION_DATE - first_rod.ACTUAL_COMPLETION_DATE as rod2iag,
case when first_rifs.ACTUAL_START_DATE is not null
and listing.ACTUAL_COMPLETION_DATE is not null
then 1
else 0
end as rod2ra_count,
ra_start.ACTUAL_START_DATE - first_rod.ACTUAL_COMPLETION_DATE as rod2ra
from site
LEFT OUTER JOIN
(select fk_site_id,
SPECIAL_INITIATIVE_CODE as FT_FLAG
from SPECIAL_INITIATIVE_SITE sppi
where SPECIAL_INITIATIVE_CODE = 'FT'
) SIS
ON site.site_id = sis.fk_site_id
LEFT OUTER JOIN
(select fk_site_id,
TYPE_SEQUENCE_CODE as listing_action,
ACTUAL_COMPLETION_DATE
from action
where TYPE_CODE = 'NF'
and (ANOMALY_CODE is null or ANOMALY_CODE not in ('PC','PB','OA','OC','TO','TT'))
and ACTUAL_COMPLETION_DATE is not null
and TO_CHAR(action.ACTUAL_COMPLETION_DATE,'YYYYMMDD') || action.TYPE_SEQUENCE_CODE =
(SELECT min(TO_CHAR(ACTUAL_COMPLETION_DATE,'YYYYMMDD') || B.TYPE_SEQUENCE_CODE)
from action b
WHERE ACTION.FK_SITE_ID = b.FK_Site_ID
and b.TYPE_CODE = 'NF'
and b.ACTUAL_COMPLETION_DATE is not null
) listing
ON SITE.SITE_ID = LISTING.FK_site_id
LEFT OUTER JOIN
(select FK_site_id,
TYPE_SEQUENCE_CODE as rifs_action,
ACTUAL_START_DATE,
ACTUAL_COMPLETION_DATE
from action
where TYPE_CODE in ('NH','LW') /*('RI','NA','NH','FS','NK','NI','CO','BD','LW') */
and LEAD_CODE = 'FF'
and (ANOMALY_CODE is null or ANOMALY_CODE not in ('PS','PB','OA','OS','TN','TT'))
and ACTUAL_START_DATE is not null
and TO_CHAR(action.ACTUAL_START_DATE,'YYYYMMDD') || TYPE_SEQUENCE_CODE =
(SELECT min(TO_CHAR(ACTUAL_START_DATE,'YYYYMMDD') || B.TYPE_SEQUENCE_CODE)
from action b
WHERE ACTION.FK_SITE_ID = b.FK_Site_ID
and b.TYPE_CODE in ('NH','LW') /*('RI','NA','NH','FS','NK','NI','CO','BD','LW') */
and b.ACTUAL_START_DATE is not null
) first_rifs
ON site.site_id = first_rifs.FK_site_id
LEFT OUTER JOIN
(select FK_site_id,
TYPE_SEQUENCE_CODE as iag_action,
ACTUAL_COMPLETION_DATE
from action
where TYPE_CODE = 'FI'
and action.LEAD_CODE = 'FE'
and (ANOMALY_CODE is null or ANOMALY_CODE not in ('PC','PB','OA','OC','TO','TT'))
and ACTUAL_COMPLETION_DATE is not null
and TO_CHAR(action.ACTUAL_COMPLETION_DATE,'YYYYMMDD') || action.TYPE_SEQUENCE_CODE =
(SELECT min(TO_CHAR(ACTUAL_COMPLETION_DATE,'YYYYMMDD') || B.TYPE_SEQUENCE_CODE)
from action b
WHERE ACTION.FK_SITE_ID = b.FK_Site_ID
and b.TYPE_CODE = 'FI'
and b.ACTUAL_COMPLETION_DATE is not null
) iag
ON site.site_id = iag.FK_site_id
LEFT OUTER JOIN
(select FK_site_id,
TYPE_SEQUENCE_CODE as rod_action,
ACTUAL_COMPLETION_DATE
from action
where TYPE_CODE = 'RO'
and (ANOMALY_CODE is null or ANOMALY_CODE not in ('PC','PB','OA','OC','TO','TT'))
and ACTUAL_COMPLETION_DATE is not null
and TO_CHAR(action.ACTUAL_COMPLETION_DATE,'YYYYMMDD') || action.TYPE_SEQUENCE_CODE =
(SELECT min(TO_CHAR(ACTUAL_COMPLETION_DATE,'YYYYMMDD') || B.TYPE_SEQUENCE_CODE)
from action b
WHERE ACTION.FK_SITE_ID = b.FK_Site_ID
and b.TYPE_CODE = 'RO'
and b.ACTUAL_COMPLETION_DATE is not null
) first_rod
ON site.site_id = first_rod.FK_site_id
LEFT OUTER JOIN
(select FK_site_id,
TYPE_SEQUENCE_CODE as ra_action,
ACTUAL_START_DATE
from action
where TYPE_CODE = 'LY'
and (ANOMALY_CODE is null or ANOMALY_CODE not in ('PS','PB','OA','OS','TN','TT'))
and ACTUAL_START_DATE is not null
and TO_CHAR(action.ACTUAL_START_DATE,'YYYYMMDD') || action.TYPE_SEQUENCE_CODE =
(SELECT min(TO_CHAR(ACTUAL_START_DATE,'YYYYMMDD') || B.TYPE_SEQUENCE_CODE)
from action b
WHERE ACTION.FK_SITE_ID = b.FK_Site_ID
and b.TYPE_CODE = 'LY'
and b.ACTUAL_START_DATE is not null
) ra_start
ON site.site_id = ra_start.FK_site_id
WHERE site.FEDERAL_FACILITY_DETER_CODE = 'Y'
and site.NPL_STATUS_CODE in (/*'P',*/'F','D','A')
) durations
group by Region
order by 1;
end;
errors:
ORA-01422: exact fetch returns more than requested number of rows
01422. 00000 - "exact fetch returns more than requested number of rows"
*Cause: The number specified in exact fetch is less than the rows returned.
*Action: Rewrite the query or change number of rows requested -
Executing a stored procedure from an Ifs Program
I have a need to execute a stored procedure in another schema
within the same database, and I need to receive an OUT parameter
to continue processing. The oracle.ifs.server.sql.IfsConnection
is not in my class path. Can someone tell me which jar file to
adde to my classpath to have this funcitonality that IFS claim.
Regards,
JeffGuys I need help with this one as soon as possible.
-
Unique Constraint error while executing statspack.snap procedure
The following is the error which popped up when i was trying to execute statspack.snap procedure from perfstat user:
ORA-00001: unique constraint (PERFSTAT.STATS$LATCH_CHILDREN_PK) violated
ORA-06512: at "PERFSTAT.STATSPACK", line 1619
ORA-06512: at "PERFSTAT.STATSPACK", line 71
ORA-06512: at line 1
How could i resolve such a problem, as all the constraints and objects for this user are created while running the oracle supplied script 'spcreate.sql'.
If any 1 knows how to handle such a situation , can come forward n please help me out.SQL> execute statspack.snap (i_snap_level=>10);
ERROR at line 1:
ORA-00001: unique constraint (PERFSTAT.STATS$LATCH_CHILDREN_PK) violated
ORA-06512: at "PERFSTAT.STATSPACK", line 1619
ORA-06512: at "PERFSTAT.STATSPACK", line 71
ORA-06512: at line 1
Cause
-- Its because of the bug # 2384758.
"STATSPACK.SNAP GIVES ORA-1 ON STATS$LATCH_CHILDREN_PK WHEN I_SNAP_LEVEL=>10"
-- The STATS$LATCH_CHILDREN table has a primary key constraint on (snap_id, dbid, instance_number, latch#, child#).
Fix
-- This is fixed in 9.0.2 and will not be backported to earlier versions because the level 10 is not a normal level to be setting unless requested by oracle support. -
Execute oracle stored procedure in CF8
I am executing a stored procedure like this.
<cfstoredproc procedure="GetAction"
datasource="test_DSN">
<cfprocparam cfsqltype="CF_SQL_INTEGER"
dbvarname="actionId" type="in" value="1">
<cfprocresult name="actions" resultset="1" >
</cfstoredproc>
and my stored procedure in oracle is,
create or replace function GetAction(actionId IN
ACTION.ID%TYPE)
RETURN ACTION%ROWTYPE
IS
actions
ACTION%ROWTYPE;
begin
select *
INTO actions
FROM ACTION WHERE ID = actionId;
RETURN actions;
end GetAction;
then I get the error message like,
ORA-01008: not all variables bound
Please help me on this.
ThanxIf you want to return a result set (result of a query) from
your PL/SQL, you will have to do what Daverms suggested and convert
your function to a procedure
and use a reference cursor to return your result set. Your
procedure will have to be contained in a package in order for you
to declare a ref cursor "globally" so that it can be accessed by
CF.
Oh, and be sure to change your cfstoredproc procedure
parameter to add the package name to the proc name.
<cfstoredproc procedure="your_pkg.GetAction"
datasource="test_DSN">
Phil -
Executing the stored procedure with output which is a collection of objects
Hello,
I have the objects and collection of objects within an objects as below:
CREATE OR REPLACE TYPE SHARE_OUTST_T
AS OBJECT
SHR_OUTST_AMT number
CREATE OR REPLACE TYPE SECURITY_T
AS OBJECT
VOTE_PER_SHR number
, CUSIP varchar2(12)
, EXCHANGE varchar2(10)
, IV_TYPE_CD varchar2(10)
, SEC_TICKER_SYMB varchar2(20)
CREATE OR REPLACE TYPE ALTERNATE_ID_T
AS OBJECT
( ALT_ID_TYPE varchar2(20)
CREATE OR REPLACE TYPE ISSUE_MAINT_VERSION_T
AS OBJECT
IM_KEY_ID number
, IM_VER_NUM number
, EFF_TMSTMP timestamp
, EXP_TMSTMP timestamp
, NEXT_REVIEW_TMSTMP timestamp
, APPR_STATUS_REF_ID number
, VOTE number
, ADD_USR_ID varchar2(20)
, ADD_TMSTMP timestamp
, UPD_USR_ID varchar2(20)
, UPD_TMSTMP timestamp
, LOCK_LEVEL_NUM number
, ACTION VARCHAR2(1)
CREATE OR REPLACE TYPE ISSUE_SHARE_MAINT_T
AS OBJECT
IM_KEY_ID number
, IM_VER_NUM number
, SHR_OUTST_AMT number
, CURR_OUTST_AMT number
, ADD_USR_ID varchar2(20)
, ADD_TMSTMP timestamp
, UPD_USR_ID varchar2(20)
, UPD_TMSTMP timestamp
, LOCK_LEVEL_NUM number
, ACTION VARCHAR2(1)
CREATE OR REPLACE TYPE ISSUE_MAINT_COMMENT_T
AS OBJECT
IM_KEY_ID number
, IM_VER_NUM number
, COMMENT_TXT varchar2(400)
, ADD_USR_ID varchar2(20)
, ADD_TMSTMP timestamp
, UPD_USR_ID varchar2(20)
, UPD_TMSTMP timestamp
, LOCK_LEVEL_NUM number
, ACTION VARCHAR2(1)
CREATE OR REPLACE TYPE ISSUE_MAINT_COMMENT_COL_T AS TABLE OF ISSUE_MAINT_COMMENT_T;
CREATE OR REPLACE TYPE ISSUE_VERSION_T
AS OBJECT
SHARE_OUTST SHARE_OUTST_T
, SECURITY SECURITY_T
, ALTERNATE_ID ALTERNATE_ID_T
, ISSUER ISSUER_T
, ISSUE_MAINT_VERSION ISSUE_MAINT_VERSION_T
, ISSUE_SHARE_MAINT ISSUE_SHARE_MAINT_T
, ISSUE_MAINT_COMMENT_COL ISSUE_MAINT_COMMENT_T
CREATE OR REPLACE TYPE ISSUE_VERSION_COL_T AS TABLE OF ISSUE_VERSION_T;
And the stored procedure as :
=======================================
PROCEDURE get_all_issue_version_col
( pv_issue_version_col OUT issue_version_col_t
AS
CURSOR cur_issue_version
IS
SELECT
issue_version_t (
SHARE_OUTST_T (so.shr_outst_amt )
, SECURITY_T ( s.vote_per_shr
, s.sec_cusip
, s.PRI_MKT_EXCH_CD
, s.IV_TYPE_CD
, s.SEC_TICKER_SYMB )
, ALTERNATE_ID_T (a.ALT_ID_TYPE)
, ISSUER_T (i.ISSR_ID )
, ISSUE_MAINT_VERSION_T (imv.im_key_id
, imv.im_ver_num
, imv.eff_tmstmp
, imv.exp_tmstmp
, imv.next_review_tmstmp
, imv.appr_status_ref_id
, imv.vote
, imv.add_usr_id
, imv.add_tmstmp
, imv.upd_usr_id
, imv.upd_tmstmp
, imv.lock_level_num
, NULL )
, ISSUE_SHARE_MAINT_T (ism.im_key_id
, ism.im_ver_num
, ism.shr_outst_amt
, ism.curr_outst_amt
, ism.add_usr_id
, ism.add_tmstmp
, ism.upd_usr_id
, ism.upd_tmstmp
, ism.lock_level_num
, NULL)
, ISSUE_MAINT_COMMENT_T(imc.im_key_id
, imc.im_ver_num
, imc.comment_txt
, imc.add_usr_id
, imc.add_tmstmp
, imc.upd_usr_id
, imc.upd_tmstmp
, imc.lock_level_num
, NULL )
FROM
share_outst so
, security s
, alternate_id a
, issuer i
, issue_maintenance_version imv
, issue_share_maintenance ism
, issue_maintenance_comment imc
WHERE
s.sec_key_id = so.SEC_KEY_ID
and s.SEC_KEY_ID = a.SEC_KEY_ID
and s.MSTR_ISSR_KEY_ID = i.ISSR_KEY_ID
and s.SEC_CUSIP = imv.SEC_CUSIP (+)
and s.SEC_CUSIP = ism.SEC_CUSIP (+)
and imv.IM_KEY_ID = imc.IM_KEY_ID (+);
BEGIN
OPEN cur_issue_version ;
FETCH cur_issue_version BULK COLLECT INTO pv_issue_version_col ;
CLOSE cur_issue_version ;
END ;
PROCEDURE get_all_issue_col_v1
( pv_issue_version_col OUT NOCOPY issue_version_col_t
, pv_row_count IN number
, pv_issuer_id IN VARCHAR2
AS
CURSOR cur_issue_version
IS
SELECT
issue_version_t (
SHARE_OUTST_T (so.shr_outst_amt )
, SECURITY_T ( s.vote_per_shr
, s.sec_cusip
, s.PRI_MKT_EXCH_CD
, s.IV_TYPE_CD
, s.SEC_TICKER_SYMB )
, ALTERNATE_ID_T (a.ALT_ID_TYPE)
, ISSUER_T (i.ISSR_ID )
, ISSUE_MAINT_VERSION_T (imv.im_key_id
, imv.im_ver_num
, imv.eff_tmstmp
, imv.exp_tmstmp
, imv.next_review_tmstmp
, imv.appr_status_ref_id
, imv.vote
, imv.add_usr_id
, imv.add_tmstmp
, imv.upd_usr_id
, imv.upd_tmstmp
, imv.lock_level_num
, NULL )
, ISSUE_SHARE_MAINT_T (ism.im_key_id
, ism.im_ver_num
, ism.shr_outst_amt
, ism.curr_outst_amt
, ism.add_usr_id
, ism.add_tmstmp
, ism.upd_usr_id
, ism.upd_tmstmp
, ism.lock_level_num
, NULL)
, ISSUE_MAINT_COMMENT_T(imc.im_key_id
, imc.im_ver_num
, imc.comment_txt
, imc.add_usr_id
, imc.add_tmstmp
, imc.upd_usr_id
, imc.upd_tmstmp
, imc.lock_level_num
, NULL )
FROM
share_outst so
, security s
, alternate_id a
, issuer i
, issue_maintenance_version imv
, issue_share_maintenance ism
, issue_maintenance_comment imc
WHERE
s.sec_key_id = so.SEC_KEY_ID
and s.SEC_KEY_ID = a.SEC_KEY_ID
and s.MSTR_ISSR_KEY_ID = i.ISSR_KEY_ID
and s.SEC_CUSIP = imv.SEC_CUSIP (+)
and s.SEC_CUSIP = ism.SEC_CUSIP (+)
and imv.IM_KEY_ID = imc.IM_KEY_ID (+);
BEGIN
OPEN cur_issue_version ;
FETCH cur_issue_version BULK COLLECT INTO pv_issue_version_col ;
CLOSE cur_issue_version ;
END ;
====================
When I execute this stored procedure thru rapid sql, I get error
Error: ORA-06550: line 1, column 21:
PLS-00306: wrong number or types of arguments in call to 'GET_ALL_ISSUE_VERSION_COL'
ORA-06550: line 1, column 21:
PL/SQL: Statement ignored, Batch 1 Line 1 Col 21
What is that I am missing?
Any help would be greatly appreciated.I've never tried Rapid SQL, but my guess is that you can't pass objects through it. I'd write a test case on the server and try it there. It looks like it should work but I didn't build a test case. If it works on the server but not in the tool, it's like the tool. OCI8 doesn't support passing instantiated objects.
-
Execute oracle stored procedure from C# always returns null
Hi,
I'm trying to execute a stored procedure on oracle 9i. I'm using .Net OracleClient provider.
Apparently, I can execute the stored procedure, but it always returns null as a result (actually all the sp's I have there returns null)! I can execute any text statement against the database successfully, and also I can execute the stored procedure using Toad.
This is not the first time for me to call an oracle stored procedure, but this really is giving me a hard time! Can anyone help please?
Below are the SP, and the code used from .Net to call it, if that can help.
Oracle SP:
CREATE OR REPLACE PROCEDURE APIECARE.CHECK_EXISTENCE(l_number IN NUMBER) AS
v_status VARCHAR2(5) := NULL;
BEGIN
BEGIN
SELECT CHECK_NO_EXISTENCE(to_char(l_number))
INTO v_status
FROM DUAL;
EXCEPTION WHEN OTHERS THEN
v_status := NULL;
END;
DBMS_OUTPUT.PUT_LINE(v_status);
END CHECK_CONTRNO_EXISTENCE;
C# Code:
string connStr = "Data Source=datasource;Persist Security Info=True;User ID=user;Password=pass;Unicode=True";
OracleConnection conn = new OracleConnection(connStr);
OracleParameter param1 = new OracleParameter();
param1.ParameterName = "v_status";
param1.OracleType = OracleType.VarChar;
param1.Size = 5;
param1.Direction = ParameterDirection.Input;
OracleParameter param2 = new OracleParameter();
param2.ParameterName = "l_number";
param2.OracleType = OracleType.Number;
param2.Direction = ParameterDirection.Input;
param2.Value = 006550249;
OracleParameter[] oraParams = new OracleParameter[] { param1, param2 };
OracleCommand cmd = new OracleCommand("CHECK_EXISTENCE", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(oraParams);
conn.Open();
object result = cmd.ExecuteScalar();
conn.Close();Hi,
Does that actually execute? You're passing two parameters to a procedure that only takews 1 and get no error?
Your stored procedure doesnt return anything and has no output parameters, what are you expecting to be returned exactly?
If you're trying to access V_STATUS you'll need to declare that as either an output parameter of the procedure, or return value of the function, and also access it via accessing Param.Value, not as the result of ExecuteScalar.
See if this helps.
Cheers,
Greg
create or replace function myfunc(myinvar in varchar2, myoutvar out varchar2) return varchar2
is
retval varchar2(50);
begin
myoutvar := myinvar;
retval := 'the return value';
return retval;
end;
using System;
using System.Data;
using Oracle.DataAccess.Client;
public class odpfuncparams
public static void Main()
OracleConnection con = new OracleConnection("user id=scott;password=tiger;data source=orcl");
con.Open();
OracleCommand cmd = new OracleCommand("myfunc", con);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter retval = new OracleParameter("retval",OracleDbType.Varchar2,50);
retval.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(retval);
OracleParameter inval = new OracleParameter("inval",OracleDbType.Varchar2);
inval.Direction = ParameterDirection.Input;
inval.Value="hello world";
cmd.Parameters.Add(inval);
OracleParameter outval = new OracleParameter("outval",OracleDbType.Varchar2,50);
outval.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outval);
cmd.ExecuteNonQuery();
Console.WriteLine("return value is {0}, out value is {1}",retval.Value,outval.Value);
con.Close();
} -
How to execute an Stored procedure in SQLDeveloper?
Hi
Thank you for reading my post
I want to know how i can execute an Stored procedure in SQL developer 1.1.0.21
for example those sotred procedure from HR schema.
one of them is add_job_history
when i click on it and select run i see a new dialog with some sql as follow:
DECLARE
P_EMP_ID NUMBER;
P_START_DATE DATE;
P_END_DATE DATE;
P_JOB_ID VARCHAR2(10);
P_DEPARTMENT_ID NUMBER;
BEGIN
P_EMP_ID := NULL;
P_START_DATE := NULL;
P_END_DATE := NULL;
P_JOB_ID := NULL;
P_DEPARTMENT_ID := NULL;
HR.ADD_JOB_HISTORY(
P_EMP_ID => P_EMP_ID,
P_START_DATE => P_START_DATE,
P_END_DATE => P_END_DATE,
P_JOB_ID => P_JOB_ID,
P_DEPARTMENT_ID => P_DEPARTMENT_ID
END;I checked the help and it said i should replace =>P_emp_id with some number
I did that and i get error.
can some one give me a sample for executing this procedure?
thanksRemove the NULL values with the data you want to use in the SP.
BEGIN
P_EMP_ID := 32;
P_JOB_ID := 'boss';
For the date you have to chose the approriate string....
Maybe you are looking for
-
Labels are not getting displayed in JRE 1.6
I have a screen, labels and fields are generated at runtime (on codition). on a condition some fields may removed/added on the screen. But This code is not working on JRE1.6. It works fine with JRE1.5 and earlier versions. I am not able to find out w
-
IPod nano 7th generation sensor issue
I just got an iPod nano 7th generation. I'm trying to figure out the nike fitness section. It keeps telling me "not linked to sensor" when I try to set up a run. I was under the impression that I wouldn't have to buy a separate sensor. Is this true?
-
Upgrade from EP6.0SP2 to Netweaver 04
Hi, Currently we have EP6.0Sp2 Patch3 installed and running. Recently we have got Netweaver 04. Kindly let me know what is the procedure for upgrading from EP6.0SP2 to Netwearver 04. DO we need to build a new system? or can old system be upgraded. Th
-
I need to upgrade my OSX 10.5.8 on my mini. How do I do that?
I need to upgrade my OSX 10.5.8 on my mini. How do I do that?
-
Hi, I am having this wired problem of running spatial functions through Java like i=1; #sql ch={select SDO_GEOM.SDO_BUFFER(geom,100,0.05) as ob from graph where fid=:i}; the Jdevelopers just hangs at this point and doesnt go beyond it.But if I run th