XSQL calling a procedure or a package
Hi all,
I am trying to call a procedure or a package from a .xsql file.
1) Is it possible ?
2) How to send the variables for the procedure, same as @name etc..
3) and in case there are some fields returning how do I exhibit it on the page, using the .xsl file.
I need these details urgently, if somebody could help I will be very thankful.
Shanthi
The next major release of the XSQL Servlet is ready, but won't be posted on OTN for another week or so.
Ozawa-san has been helping us test
some of the new Multibyte-aware
features/fixes that we've made
along with all the new features we've
added for the 0.9.8.5 release.
The <xsql:dml> tag is one of many
new useful tags that have been added
based on user feedback from this forum.
Similar Messages
-
Display invalid pattern name while calling the procedure inside the package
Hi ,
I'am trying to call a package which is having procedure ,from JDBC in which one of the return type is Varray from the procedure.When i'am calling the procedure inside the package
from java showing invalid name pattern name.Just i'am placing the code snippet for package and calling java through package.
Package body
create or replace package body Rewards_Summary_Package as
PROCEDURE Rewards_Summary_Procedure
(v_Tot_Earned_Points OUT NUMBER, v_TOT_REDEEMED OUT NUMBER, v_TOT_PTS_EXP OUT NUMBER,
v_TOT_AVAILABLE OUT NUMBER, v_TIER_NAME OUT VARCHAR2,VA OUT t_varray,V_PR_CON_ID IN VARCHAR2) AS
v_ACCRUALED_VAL NUMBER := 0;
v_USED_VAL NUMBER := 0;
/*v_TOT_ACCRUALED_VAL NUMBER := 0;
v_TOT_USED_VAL NUMBER := 0;
V_PR_TIER_ID VARCHAR2(30);
V_PR_CON_ID VARCHAR2(30);
V_EXPIRY_DT DATE;
v_month varchar2(30);
v_date date;
v_next_month_date date;
v_TIER_NAME VARCHAR2(50);
v_TOT_AVAILABLE NUMBER := 0;
v_EARNED NUMBER := 0;
v_TOT_EARNED NUMBER := 0;
v_TOT_REDEEMED NUMBER := 0;
v_TOT_EXPIRED NUMBER := 0;
v_EARNED_TOTAL NUMBER := 0;
v_TOT_EXPIRED_MONTH NUMBER := 0;
v_TOT_PTS_EXP NUMBER := 0;
v_TOT_RDMD_CANCELLED NUMBER :=0;
v_TOT_EARNED_POINTS NUMBER :=0;*/
v_FIRST_DT DATE;
v_LAST_DT DATE;
v_MEMBER_ID VARCHAR2(30);
V_EXPIRED_VAL Number;
v_TOT_PRDPTS_RDMD NUMBER := 0;
v_TOT_PTS_RDMD NUMBER := 0;
v_CAN_ACCRUAL_POINTS NUMBER := 0;
BEGIN
/*TotalRwdPoints and Tier Name*/
SELECT TR.NAME,MEM.POINT_TYPE_A_VAL,MEM.ROW_ID INTO v_TIER_NAME,v_TOT_AVAILABLE,v_MEMBER_ID
FROM SIEBEL.S_LOY_MEMBER MEM, SIEBEL.S_LOY_TIER TR WHERE MEM.PR_DOM_TIER_ID=TR.ROW_ID
AND MEM.PR_CON_ID=V_PR_CON_ID;
vTotPrdPtsRdmd
SELECT NVL(SUM(A.VALUE),0) INTO v_TOT_PRDPTS_RDMD from SIEBEL.S_LOY_RDM_ITM A,SIEBEL.S_LOY_ATTRDEFN B
WHERE A.MEMBER_ID = v_MEMBER_ID AND A.ATTRB_DEFN_ID = B.ROW_ID AND b.INTERNAL_NAME = 'Point 1 Value' AND A.TYPE_CD='Product'
AND A.TXN_ID IS NOT NULL;
vTotPtsRdmd
SELECT NVL(SUM(A.VALUE),0) INTO v_TOT_PTS_RDMD from SIEBEL.S_LOY_RDM_ITM A,SIEBEL.S_LOY_ATTRDEFN B
WHERE A.MEMBER_ID = v_MEMBER_ID AND A.ATTRB_DEFN_ID = B.ROW_ID AND b.INTERNAL_NAME = 'Point 1 Value' AND (A.TYPE_CD='Product' or A.TYPE_CD='Transfer')
AND A.TXN_ID IS NOT NULL;
vTotRewardPtExp
SELECT NVL(SUM(A.VALUE),0) INTO v_TOT_PTS_EXP FROM SIEBEL.S_LOY_RDM_ITM A,SIEBEL.S_LOY_ATTRDEFN B
WHERE A.MEMBER_ID = v_MEMBER_ID AND A.ATTRB_DEFN_ID = B.ROW_ID AND b.INTERNAL_NAME = 'Point 1 Value' AND A.TYPE_CD='Expired'
AND a.TXN_ID IS NULL;
vCanAccrualPoints
SELECT NVL(SUM(A.ACCRUALED_VALUE),0) INTO v_CAN_ACCRUAL_POINTS from SIEBEL.S_LOY_ACRL_ITM A,SIEBEL.S_LOY_ATTRDEFN B
WHERE A.MEMBER_ID = v_MEMBER_ID AND A.ATTRIB_DEFN_ID = B.ROW_ID AND b.INTERNAL_NAME = 'Point 1 Value' AND A.TYPE_CD='Cancellation';
v_Tot_Earned_Points := v_TOT_AVAILABLE+v_TOT_PRDPTS_RDMD+v_TOT_PTS_EXP-v_CAN_ACCRUAL_POINTS;
v_TOT_REDEEMED := v_TOT_PTS_RDMD-v_CAN_ACCRUAL_POINTS;
DBMS_OUTPUT.PUT_LINE(' Total Earned: '|| v_Tot_Earned_Points || ' Total Redeemed: '|| v_TOT_REDEEMED || ' Total Expired: '|| v_TOT_PTS_EXP
|| ' Balance Points: '|| v_TOT_AVAILABLE || ' Tier Name: '|| v_TIER_NAME);
select trunc(sysdate,'MONTH') INTO v_FIRST_DT from dual;
va:= t_varray(Null,Null,Null,Null,Null,Null);
FOR a in 1 .. 6 LOOP
select trunc(last_day(v_FIRST_DT)) INTO v_LAST_DT from dual;
SELECT SUM(AI.ACCRUALED_VALUE),SUM(AI.USED_VALUE) INTO v_ACCRUALED_VAL,v_USED_VAL from SIEBEL.S_LOY_ACRL_ITM AI,SIEBEL.S_LOY_ATTRDEFN A
WHERE AI.MEMBER_ID = v_MEMBER_ID AND A.ROW_ID = AI.ATTRIB_DEFN_ID AND A.INTERNAL_NAME = 'Point 1 Value'
AND trunc(AI.EXPIRATION_DT) >= v_FIRST_DT AND trunc(AI.EXPIRATION_DT) <= v_LAST_DT;
V_EXPIRED_VAL := NVL(v_ACCRUALED_VAL-v_USED_VAL,0);
va(a):=V_EXPIRED_VAL;
v_FIRST_DT := add_months(v_FIRST_DT,1);
End loop;
END;
end;
Package declaration
create or replace package Rewards_Summary_Package as
TYPE t_varray IS VARRAY(6) OF NUMBER;
PROCEDURE Rewards_Summary_Procedure
(v_Tot_Earned_Points OUT NUMBER, v_TOT_REDEEMED OUT NUMBER, v_TOT_PTS_EXP OUT NUMBER,
v_TOT_AVAILABLE OUT NUMBER, v_TIER_NAME OUT VARCHAR2,VA OUT t_varray,V_PR_CON_ID IN VARCHAR2);
end;
java code
I had tried using java types and Oracle types
conn=SiebelServiceDatasource.getConnection(SSBConstants.REWARDS_PROP_LOG_SUFIX);
// ArrayDescriptor.TYPE_VARRAY
ocstmt=(OracleCallableStatement)conn.prepareCall(" {call REWARDS_SUMMARY_PACKAGE.REWARDS_SUMMARY_PROCEDURE(?,?,?,?,?,?,?)}");
//ocstmt=(OracleCallableStatement)conn.prepareCall(" call Test_Array(?,?)");
ocstmt.registerOutParameter(1,OracleTypes.INTEGER);
ocstmt.registerOutParameter(2,OracleTypes.INTEGER);//1-616BH
ocstmt.registerOutParameter(3,OracleTypes.INTEGER);
ocstmt.registerOutParameter(4,OracleTypes.INTEGER);
ocstmt.registerOutParameter(5,OracleTypes.VARCHAR);
ocstmt.registerOutParameter(6,OracleTypes.ARRAY,"SIEBEL.T_VARRAY");
ocstmt.setString(7,contactSiebelRowId);
ocstmt.execute();
Showing the following invalid name pattern SIEBEL.T_VARRAY
Please help
Thanks in advance
Kirancreate or replace package Rewards_Summary_Package as
TYPE t_varray IS VARRAY(6) OF NUMBER;
end;You've declared your type inside the package. You need to declare it as a SQL type, which is not part of a PL/SQL package. -
Calling a procedure from a package or another procedure
Hi all,
I am trying to call a couple of procedures defined in a package using the 'call' method without any success.
i tried to create a third procedure and call the other two procedures from there, still without success. Can some one tell me the right method? also i've been trying to research a lot, but havent found any helpful documentation. where would i look for good help material on PL/SQL?
Purvi.All Oracle's documentation is available online at http://tahiti.oracle.com. In particular, the PL/SQL User's Guide would probably be the most helpful to you.
"call" is something that is generally used on client applications (ODBC and JDBC based). It is not used when calling stored procedures in PL/SQL. If you have procedures proc1 and proc2, you can call them from a third stored procedure proc3 like this
CREATE OR REPLACE PROCEDURE proc1
AS
BEGIN
dbms_output.put_line( 'proc1' );
END;
CREATE OR REPLACE PROCEDURE proc2
AS
BEGIN
dbms_output.put_line( 'proc2' );
END;
CREATE OR REPLACE PROCEDURE proc3
AS
BEGIN
proc1();
proc2();
END;If both proc1 and proc2 were in a package called myPkg, and proc3 was a standalone procedure, you would need to modify it to reference the package name
CREATE OR REPLACE PROCEDURE proc3
AS
BEGIN
myPkg.proc1();
myPkg.proc2();
END;Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
How to make my program written in c + + call a procedure of a package?
Before anything, I'm sorry if the forum is not appropriate for my question ...
Firstly, could you explain what is "C ++ Call Interface (OCCI)"? Means that the Oracle libraries embed c++?
I'm asking because a client of the company, where I work, has a program written in c++ and he needs to call a procedure in my database and get values as cursor fields parameters.
I wanted you to know how best to integrate it and how it can be done.
Thanks.Hi,
Here's a very similar and recent thread on the OCI forum:
What is the diffrence between OCI and OCCI?
Perhaps that will be some help.
Also, here's a link to the OCCI documentation on Oracle Technology Network (OTN):
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28390/toc.htm
Regards,
Mark -
Calling a procedure in a package
Hi,
I'm very new to procedures and I have no idea how to get the value I want in the variable v_missing. The package compiles but when I test the code no result is returned.
Procedure MW_MISSING(v_missed out number)
IS
CURSOR curs
IS
Select *
from (
select receiver_id, due_date, payment_status, acc_payment_no
from (
select receiver_id, due_date, payment_status,acc_payment_no, rank() over(partition by receiver_id, trunc(due_date, 'mm') order by due_date desc) rk
from acc_payment
where rk = 1
--and receiver_id = 144673
order by 1, 2
)z
,(select cla_case_no, name_id_no, incident_date
from cla_case cc, cla_event ce
where cc.cla_event_no = ce.cla_event_no) x
where z.receiver_id = x.name_id_no
and Due_Date Between add_months(Incident_date, - 6) and Incident_date
and cla_case_no = v_cla_case.cla_case_no;
BEGIN
w_counter := 0;
FOR cc IN curs
LOOP
IF cc.payment_status = 9 THEN
w_counter := w_counter + 1;
ELSIF cc.payment_status = 4 THEN
w_counter := 0;
END IF;
IF w_counter = 3 THEN
EXIT;
END IF;
END LOOP;
IF w_counter = 3
THEN v_Missed :='Y';
ELSE v_Missed :='N';
END IF;
END MW_MISSING;Banner:
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
"CORE 11.2.0.2.0 Production"
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production885178 wrote:
I'm very new to procedures and I have no idea how to get the value I want in the variable v_missing. The package compiles but when I test the code no result is returned.Code is far from optimal. There is absolutely no need to pull data all the way from the SQL engine into the PL/SQL engine, and then perform filtering and calculations there.
It can be done better and faster in SQL. Write a single SQL statement to perform the calculations needed. Have a look at the CASE function in the SQL language.
And then write proper code.
There is a very basic rule for writing optimal Oracle code: Maximise SQL. Minimise PL/SQL.
Your are violating that rule as your are using the PL/SQL language to perform processing that the SQL is perfectly capable of doing. And will do it faster and better than doing it in PL/SQL. Always.
PL/SQL only needs to be used when SQL itself is not capable. Like dealing with conditional process flows. Dealing with exceptions. Managing process flow. Etc. -
Package: Difference between calling external procedures vs. internal
I have a package which has a bunch of procedures. I have decided to move one of the procedures outside the package because there is a user that needs control over the SQL in it. I pass 2 dates into it so I don't think I can create a view. My question is this:
What is the difference in syntax to call a procedure outside the package as opposed to one inside the package?I don't think I've ever been in the position of having a stand-alone procedure with the same name as a packaged procedure and needing to call the stand-alone one from within the package, but it is still possible:
SQL> CREATE PROCEDURE p
2 AS
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE('This is the stand-alone procedure');
5 END;
6 /
Procedure created.
SQL> CREATE PACKAGE pkg
2 AS
3 PROCEDURE testit;
4 END;
5 /
Package created.
SQL> CREATE PACKAGE BODY pkg
2 AS
3 PROCEDURE p
4 IS
5 BEGIN
6 DBMS_OUTPUT.PUT_LINE('This is a procedure in package PKG');
7 END;
8
9 PROCEDURE testit
10 IS
11 BEGIN
12 william.p;
13 END;
14 END;
15 /
Package body created.
SQL> exec pkg.testit;
This is the stand-alone procedure
PL/SQL procedure successfully completed.
SQL> -
Function call in procedure within Package Body
I am a novice in PL/SQL so that I can't find out where the problem is. I am testing a function call in procedure within a Package Body.
But the PL/SQL Complier doesn't compile the package body but I don't know what I do wrong. Plz let me know how to call a function in procedure within a Package Body?
Here are the Packaget test programs..
CREATE OR REPLACE PACKAGE manage_students
IS
PROCEDURE find_sname;
PROCEDURE find_test;
PROCEDURE find_test_called;
FUNCTION GET_LASTMT
RETURN SEQUENCE_TEST.SEQ_NO%TYPE;
END manage_students;
CREATE OR REPLACE PACKAGE BODY manage_students AS
v_max_nbr SEQUENCE_TEST.SEQ_NO%TYPE;
PROCEDURE find_sname
IS
BEGIN
BEGIN
SELECT MAX(SEQ_NO)
INTO v_max_nbr
from SEQUENCE_TEST;
DBMS_OUTPUT.PUT_LINE('MAX NUMBER is : '||v_max_nbr);
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
RETURN;
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
END find_sname;
PROCEDURE find_test
IS
BEGIN
BEGIN
DBMS_OUTPUT.PUT_LINE('MAX NUMBER Called from another procedure : '||v_max_nbr);
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
RETURN;
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
END find_test;
FUNCTION GET_LASTMT
RETURN SEQUENCE_TEST.SEQ_NO%TYPE
IS
v_max_nbr SEQUENCE_TEST.SEQ_NO%TYPE;
BEGIN
SELECT MAX(SEQ_NO)
INTO v_max_nbr
from SEQUENCE_TEST;
RETURN v_max_nbr;
EXCEPTION
WHEN OTHERS
THEN
DECLARE
v_sqlerrm VARCHAR2(250) :=
SUBSTR(SQLERRM,1,250);
BEGIN
RAISE_APPLICATION_ERROR(-20003,
'Error in instructor_id: '||v_sqlerrm);
END;
END GET_LASTMT;
PROCEDURE find_test_called
IS
BEGIN
BEGIN
V_max := Manage_students.GET_LASTMT;
DBMS_OUTPUT.PUT_LINE('MAX_NUMBER :'|| V_max);
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
RETURN NULL;
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('Error in finding student_id: ');
END find_test_called;
END manage_students;
DECLARE
v_max SEQUENCE_TEST.SEQ_NO%TYPE;
BEGIN
manage_students.find_sname;
DBMS_OUTPUT.PUT_LINE ('Student ID: Execute.');
manage_students.find_test;
manage_students.find_test_called;
END;
-----------------------------------------------------------------------------------------------Hi,
Welcome to the forum!
You'll find that there are a lot of people willing to help you.
Are you willing to help them? Whenever you have a problem, post enough for people to re-create the problem themselves. That includes CREATE TABLE and INSERT statements for all the tables you use.
Error messages are very helpful. Post the complete error message you're getting, including line number. (It looks like your EXCEPTION sections aren't doing much, except hiding the real errors. That's a bad programming practice, but probably not causing your present problem - just a future one.)
Never post unformatted code. Indent the code to show the extent of each procedure, and the blocks within each one.
When posting formatted text on this site, type these 6 characters:
\(all small letters, inside curly brackets) before and after each section of formatted test, to preserve the spacing.
For example, the procedure find_test_called would be a lot easier to read like this:PROCEDURE find_test_called
IS
BEGIN
BEGIN
V_max := Manage_students.GET_LASTMT;
DBMS_OUTPUT.PUT_LINE ('MAX_NUMBER :' || V_max);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE ('Error in finding student_id: ');
RETURN NULL;
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE ('Error in finding student_id: ');
END find_test_called;
It's much easier to tell from the code above that you're trying to return NULL from a procedure. Only functions can return anything (counting NULL); procedures can have RETURN statements, but that single word"RETURN;" is the entire statement. -
Need Help: Using Ref Cursor in ProC to call a function within a Package
I'm calling a function within a package that is returning a REF CURSOR.
As per the Oracle Pro*C Programmer's Guide, I did the following:
1) declared my cursor with a: EXEC SQL BEGIN DECLARE SECTION and declared the cursor as: SQL_CURSOR my_cursor;
2) I allocated the cursor as: EXEC SQL ALLOCATE :my_cursor;
3) Via a EXEC SQL.....END-EXEC begin block
I called the package function and assign the return value to my cursor
e.g. my_cursor := package.function(:host1, :host2);
Now, the only difference between my code and the example given in the Pro*C Programmer's Guide is that the example calls a PROCEDURE within a package that passes back the REF CURSOR as an OUT host variable.
Whereas, since I am calling a function, the function ASSIGNS the return REF CURSOR in the return value.
If I say my_cursor := package.function(:host1, :host2); I get a message stating, "PLS-00201: identifier MY_CURSOR" must be declared"
If I say :my_cursor := package.function(:host1, :host2); I get a message stating, "ORA-01480: trailing null missing from STR bind value"
I just want to call a package function and assign the return value to a REF CURSOR variable. There must be a way of doing this. I can do this easily in standard PL/SQL. How can this be done in Pro*C ???
Thanks for any help.Folks, I figured it out. For those who may face this problem in the future you may want to take note for future reference.
Oracle does not allow you to assign the return value of a REF CURSOR from a FUNCTION ( not Procedure - - there is a difference) directly to a host variable. This is the case even if that host variable is declared a CURSOR variable.
The trick is as follows: Declare the REF CURSOR within the PL/SQL BEGIN Block, using the TYPE statement, that will contain the call to the package function. On the call, you then assign the return REF CURSOR value that the function is returning to your REF CURSOR variable declared in the DECLARE section of the EXEC SQL .... END-EXEC PL/SQL Block.
THEN, assign the REF CURSOR variable that was populated from the function call to your HOST cursor varaible. Then fetch this HOST Cursor variable into your Host record structure variable. Then you can deference individual fields as need be within your C or C++ code.
I hope this will help someone facing a deadline crunch. Happy computing ! -
Execute procedure in a package using the caller privileges?
Is it possible to execute a procedure within a package using the privileges of the caller rather than the privileges of the package owner? So if we have a procedure that does a select, one that does an insert, and another for update and a 4th for delete, then we just want to grant execute to user X on the select procedure in the package. This is a developer request. I think I just need to tell the requestor to copy or move the procedure out of the package and into it's own procedure so that it's safe to run by user X and not grant execute on the package since I don't believe it is possible to specify what procedures in a package are granted execute since that command is a blanket for the whole package right?
Example - fails due to specifying the proc:
grant execute on scmemaname.pkgname.procname to usr;
There's no other command to do that is there?
Thanks,
Dave
Edited by: Gib on Jan 19, 2010 8:42 AMAUTHID is at the package level ... not the individual function or procedure.
Create a second package. -
Calling a stored procedure within a package
We have a number of packages containing stored procedures. In an existing production application, we used embedded SQL in C programs to call these stored procs
e.g.
EXEC SQL EXECUTE
BEGIN owner.fees_calc.some_fee(:parm1,...);
END;
END-EXEC;
Now, I am trying to use SQLJ to call this same stored proc in the package. However, I am getting a compilation error from sqlj saying that it cannot find a stored procedure or function of that name. It works fine if I use a stored proc that is not in a package.
So how do I call a stored procedure within a package? Or is this not currently possible with sqlj?
I am also getting a warning just before the error and I'm wondering if the error is being caused by this:
Warning: You are using an Oracle JDBC driver, but connecting to a non-Oracle database. SQLJ will perform JDBC-generic SQL checking.
I am connecting to an Oracle 7.3.3 database using an Oracle 7.3.4 JDBC driver. I also tried using the Oracle 8.0.5 JDBC driver for the same database but I get the same warning message.I used the following code to call a stored
procedure via SQLJ:
try {
#sql [iCtx] {
CALL ibs.cvs_validate.validate_port_id(:IN record_id ,:IN poe_pod_flag,:IN port_id,:OUT error_code,:OUT error_message) };
where
"ibs" is the schema
"cvs_validate" is the package
"validate_port_id" is the procedure
The code runs fine, but to get it to compile
in JDeveloper 2.0, I had to disable the "Check SQL semantics against database schema" option on the Project Properties (SQLJ) property sheet.
null -
Call to a procedure in DBMS_PARALLEL_EXECUTE package
Hi All,
I have a procedure that takes an input parameter, I need to call this procedure in parallel. I am going to use DBMS_PARALLEL_EXECUTE package to parallize the process. Here is a example of what I want to do, please note that there is a third parameter newParameter.
l_sql_stmt := 'BEGIN process_update(:start_id, :end_id, ' || newParameter || ' ); END;';
DBMS_PARALLEL_EXECUTE.run_task(task_name => l_task,
sql_stmt => l_sql_stmt,
language_flag => DBMS_SQL.NATIVE,
parallel_level => 10);
I create the task and chunck using SQL, but this run task does not start processing. Can we do this?
Thanks in advance?>
I have a procedure that takes an input parameter, I need to call this procedure in parallel. I am going to use DBMS_PARALLEL_EXECUTE package to parallize the process. Here is a example of what I want to do, please note that there is a third parameter newParameter.
l_sql_stmt := 'BEGIN process_update(:start_id, :end_id, ' || newParameter || ' ); END;';
DBMS_PARALLEL_EXECUTE.run_task(task_name => l_task,
sql_stmt => l_sql_stmt,
language_flag => DBMS_SQL.NATIVE,
parallel_level => 10);
I create the task and chunck using SQL, but this run task does not start processing. Can we do this?
>
We have no way of knowing if you can do what you are trying to do since you didn't post the code you are using to do it.
You can use a stored procedure to process the workload if that is what you are asking.
See this Oracle-base article for an example of using a stored procedure for the workload.
http://www.oracle-base.com/articles/11g/dbms_parallel_execute_11gR2.php#create_chunks_by_sql
>
The following example shows the processing of a workload chunked by a number column. Notice that the workload is actually a stored procedure in this case.
>
You did NOT provide any code that shows how you plan to provide that 'third' parameter so maybe that is where your problem is. -
Xsql and Stored Procedures/Packages
I need to call a stored proc that includes a select statement through XSQL. The procedure returns a ResultSet. I have not been able to find a way to bind this parameter, or to return this ResultSet. Has anybody tried to do this?
TIAThe <xsql:ref-cursor-function> exists for just this purpose.
If you already have a function that returns a REF CURSOR in an OUT parameter of a procedure, just write a wrapper function that returns that OUT value as the return value of a function and then use <xsql:ref-cursor-function> to repurpose it's results as XML in your XSQL page. -
Call a function inside a package from a stored procedure
Hello:
I am kind of new to the stored procedure. Does anyone know how to call a function inside a package from another stored procedure?
I have a existing function (func_b) inside a package (pack_a) and it returns a cursor. I want to call this function from a stored procedure (proc_c) so that I use the data inside the cursor.
can I do the following in proc_c:
my_cursor1 SYS_REFCURSOR;
begin
my_cursor1 := exec pack_a.func_b
end
It will be very helpful if anyone can point me to any reading or example. Thank you very much for your information.guys:
Thank you for your information so far. I need some more help here. I was able to run the function in my stored procedure. However, I was not able to print the result on the screen to view the cursor result, although I am using dbms_output.put_line statement inside my stored procedure.
I use the following statement to execute my stored procedure on sql*plus. I can tell the stored procedure is executed successfully, but I did see anything printed:
DECLARE TEMP VARCHAR2(100);
BEGIN PROC_LAWS_CAD_NAME_SEARCH('LPD', 'TEST DEVICE ID', 'TEST LAST NAME', 'TEST FIRST NAME', 'F', '11112009', TEMP); END;
I tried to use 'set serveroutput on' and got the following error:
ERROR:
ORA-06502: PL/SQL: numeric or value error: host bind array too small
ORA-06512: at line 1
I am kind of confused now. thank you for your help.
Jack
Here is my procedure:
create or replace
PROCEDURE PROC_SEARCH
( AGENCY_ID IN VARCHAR2,
DEVICE_ID IN VARCHAR2,
L_NAME IN VARCHAR2,
F_NAME IN VARCHAR2,
SEX IN VARCHAR2,
DOB IN VARCHAR2,
CAD_NAME_SCH_RESULT_STR OUT VARCHAR2)
AS
v_agy_id varchar2(10);
v_device_id varchar2(20);
v_l_name varchar2(25);
v_f_name varchar2(15);
v_sex varchar2(1);
v_dob date;
-- this cursor is going to be used to store a list of warrant matching
-- name search criteria
cad_srch_cursor sys_refcursor;
objSrch SEARCH_RESULT_TEMP%ROWTYPE;
BEGIN
cad_srch_cursor := SEARCH_PKG.SEARCH('TESTING', 'TESTER', null, null,null, null, getPhonetic('TESTING'));
LOOP
FETCH cad_srch_cursor INTO objSrch;
EXIT WHEN cad_srch_cursor%NOTFOUND;
--insert into SEARCH_RESULT_TEMP (name_last) values (objSrch.name_last);
CAD_NAME_SCH_RESULT_STR := objSrch.name_last;
dbms_output.put_line('First:'||objSrch.name_first||':Last:'||objSrch.name_last||':Middle:'||objSrch.name_middle);
end LOOP;
END PROC_LAWS_SEARCH;
----------------------------------------- -
Package/procedure/function calls done with in a package
Hi Experts,
Can anybody suggest me the table/ a query to find the package/procedure/function calls (with in the same db or remote) done with in a package.
It would be great if we can provide a tree like structure of the objects being called/used.
btw.. dba_dependencies will provide me the info about the global procedures only not the local ones used with in the package body.
Appreciate your time..
Thanks
Manjumanjukn wrote:
Hi Experts,
Can anybody suggest me the table/ a query to find the package/procedure/function calls (with in the same db or remote) done with in a package.
It would be great if we can provide a tree like structure of the objects being called/used.
btw.. dba_dependencies will provide me the info about the global procedures only not the local ones used with in the package body.
Appreciate your time..What database version do you have?
11g I think provides some sort of fine grained dependency information which can detail packages, but prior to 11g you can only get dependencies on the database objects themselves of which functions/procedures within a package are not, as the package itself is the object.
I don't think there's any easy way to find out from any tables or views and I think third party tools would have to parse the code to determine such things themselves, so that may be one of your only options. -
Need sample source code for calling stored procedure in Oracle
Hi.
I try to call stored procedure in oracle using JCA JDBC.
Anybody have sample source code for that ?
Regards, Arnold.Thank you very much for a very quick reply. It worked, but I have an extended problem for which I would like to have a solution. Thank you very much in advance for your help. The problem is described below.
I have the Procedure defined as below in the SFCS1 package body
Procedure Company_Selection(O_Cursor IN OUT T_Cursor)
BEGIN
Open O_Cursor FOR
SELECT CompanyId, CompanyName
FROM Company
WHERE CompanyProvince IN ('AL','AK');
END Company_Selection;
In the Oracle Forms, I have a datablock based on the above stored procedure. When I execute the form and from the menu if I click on Execute Query the data block gets filled up with data (The datablock is configured to display 10 items as a tabular form).
At this point in time, I want to automate the process of displaying the data, hence I created a button and from there I want to call this stored procedure. So, in the button trigger I have the following statements
DECLARE
A SFCS1.T_Cursor;
BEGIN
SFCS1.Company_Selection(A);
go_Block ('Block36');
The cursor goes to the corresponding block, but does not display any data. Can you tell me how to get the data displayed. In the future versions, I'm planning to put variables in the WHERE clause.
Maybe you are looking for
-
How to connect my Alesis to Logic Express Pro, running on an Intel Mac Mini
Hi, would anyone possibly have an idea how to connect my Alesis Multimix 8 USB to Logic Express 7,2? The Alesis has a USB out. But I don't see anything in the L/E documentation on USB connections. I'm hopeful there's another way. Thanks very much. -p
-
Problems publishing iWeb website
When I publish my website icons are misplaced and fonts are wrong. It seems every time I republish it happens more. Driving me crazy!! Help!
-
Connecting a usb disc but no files show up
I'm connecting a 750Gb Lacie usb disc to my 500GB Time Capsule but no files show up. TC connects to the disc OK, but any of my old files (700GB) doesn't show up at all. It only gives a reading on the disc 0 items 72GB available. I'm also trying to es
-
User Exit/Dynamic Actions when saving Business Event
Hi, In Training & Event Management, is there such a thing as a user exit/dynamic actions that will be invoked when saving a Business Event? Thank you. Regards,
-
I have been using Mozilla firefox with Windows 7 and it was working fine till yesterday. But now its not responding when I am clicking on the icon. It is listed in all programs list as well as in firewalls exceptions. I want to make it start working