How to return a VARRAY datatype in a stored procedure
I have declared a type using
create type list1 as VARRAY(1000) of number(5);
I want to return a list of values from a stored procedure. I created a stored procedure using
create procedure getlist(mylist OUT list1) is
begin
end;
The type and procedure creation was successful. But when I call this stored procedure from a PL/SQL module I get the following error.
ORA-06531: Reference to uninitialized collection
The PL/SQl module is
declare
s1 list1(1,2);
begin
getlist(s1);
end;
I want the procedure to return around 1000 values. Any solutions.
Mohan
null
<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by MOHAN [email protected]:
I have declared a type using
create type list1 as VARRAY(1000) of number(5);
I want to return a list of values from a stored procedure. I created a stored procedure using
create procedure getlist(mylist OUT list1) is
begin
end;
The type and procedure creation was successful. But when I call this stored procedure from a PL/SQL module I get the following error.
ORA-06531: Reference to uninitialized collection
The PL/SQl module is
declare
s1 list1(1,2);
begin
getlist(s1);
end;
I want the procedure to return around 1000 values. Any solutions.
Mohan<HR></BLOCKQUOTE>
I am also having the same problem ..plzz help me someone
null
Similar Messages
-
How to return varied no.of columns from Stored Procedure?
Hi All,
I have situation where I need to return with columns which will keep changing. At any given point of time I will be returning 10 columns. But there are some conditions where I need to add multiples of 4 no.of columns.
Ex: Always 10 columns.
If condition1
return 10 + 4 columns
if condition2
return 10 + 4 + 4 columns
How can I handle this?
Can any one help me here.
Thanks
VikramChange the stored procedure to a single column set return type like returning nulls if column is not applicable.
Alternate, split the sp to single column set sp-s.
You can get the returned column set by SELECT TOP(0) * INTO spxColumns FROM OPENQUERY..... method:
http://sqlusa.com/bestpractices2005/selectfromsproc/
http://www.sqlusa.com/bestpractices/select-into/
Note, however, the OPENQUERY method is not completely clean.
Kalman Toth Database & OLAP Architect
Free T-SQL Scripts
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012 -
How to set pdn12.trancat mandatory in this stored procedure?
How can i make PDN12.transcat in this Stored Procedure
USE [zIRC DEMO]
GO
/****** Object: StoredProcedure [dbo].[SP_CHECK_MANDATORY_IN_OPDN] Script Date: 03/07/2014 10:37:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_CHECK_MANDATORY_IN_OPDN]
@list_of_cols_val_tab_del NVARCHAR(255), @error_message NVARCHAR(255) OUTPUT
AS
BEGIN
--invoice type
select
@error_message='In header line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND isnull(OPDN.U_InvType,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND isnull(OPDN.U_InvType,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Invoice Type is missing'
-- num at card
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In header line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.NumAtCard,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.NumAtCard,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Vendor ref. number is missing'
END
-- transporter
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.U_Transport,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.U_Transport,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Transporter is missing'
END
--dealer
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.U_dealer,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(OPDN.U_Dealer,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Dealer is missing'
END
--base price
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_BasePrice,0)=0
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_BasePrice,0)=0
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Base Price is missing'
END
--taxcode
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(PDN1.TaxCode,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S','L') AND isnull(PDN1.TaxCode,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Taxcode is Missing'
END
-- ed rate
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_EDRate,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_EDRate,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Excice Duty Rate is missing'
END
-- ed duty
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_EDuty,0)=0
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('M','D','S') AND isnull(PDN1.U_EDuty,0)=0
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Excice Duty is missing'
END
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND ISNULL(PDN1.U_MfgInvNo,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND ISNULL(PDN1.U_MfgInvNo,'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Mfg. invoice number is missing'
END
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND isnull(convert(nvarchar(10),U_MfgInvDt,112),'')=''
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND isnull(convert(nvarchar(10),U_MfgInvDt,112),'')=''
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Mfg. invoice date is missing'
END
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND PDN1.U_MfgQty=0
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND PDN1.U_MfgQty=0
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Mfg. invoice Quantity is missing'
END
if(ISNULL(@error_message,'')='')
BEGIN
select
@error_message='In line number(s), '+ substring
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
where
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND PDN1.U_MfgValue=0
order by
PDN1.LineNum FOR XML PATH ('')
),1
,LEN((
select CONVERT(char(2),PDN1.LineNum)+','
from
OPDN
inner join PDN1 on OPDN.DocEntry=PDN1.DocEntry
WHERE
OPDN.DocEntry=@list_of_cols_val_tab_del AND OPDN.DocType='I' AND OPDN.U_InvType in ('D','S') AND PDN1.U_MfgValue=0
order by
PDN1.LineNum FOR XML PATH ('')
))-1
)+' Mfg. Assessble value is missing'
END
if(ISNULL(@error_message,'')<>'')
BEGIN
return -1
END
else
begin
return 0
end
ENDHello Nabil
Could you explain what is the point of making PDN12.Trancat mandatory? I am asking this because at my end that field has got NULL value in all PDN12 table entries, and I am not sure if this field can be updated manually when creating a Good Receipt PO. Considering this, it seems that by making this field mandatory TN will block all Good Receipts from addition.
Regards -
How can I automatically prepend comment blocks to stored procedures?
How can I automatically prepend comment blocks to stored procedures?
In my organization, the standard is to comment all stored procedures with a comment block that looks like this:
/*-- =============================================
-- Created by: <Owner>
-- Created date: 01/08/2012
-- Purpose: Inserts new setting value, code and description
-- Modifications:
-- Modified by: <Owner>
-- Modification date: 01/08/2012
-- Purpose: Inserts new setting value, code and description
-- =============================================*/Thanks.
select * from v$version;
BANNER
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production Edited by: xDeviates on 01-ago-2012 7:37
Edited by: xDeviates on 01-ago-2012 8:31Hi,
If I want to write a package called pk_fubar, I copy the following script and call it fubar.sql
-- ========== package_name.sql starts here ==========
-- Package_Name.sql
SPOOL &home_dir\package_name.lst
PROMPT . H H EEEE A DDDD
PROMPT . H H E A A D D
PROMPT . HHHHH EEE A A D D
PROMPT . H H E AAAAA D D
PROMPT . H H EEEEE A A DDDD
@@package_name_head
PROMPT . BBBB OOO DDDD Y Y
PROMPT . B B O O D D Y Y
PROMPT . BBBB O O D D Y
PROMPT . B B O O D D Y
PROMPT . BBBB OOO DDDD Y
@@package_name_body
SPOOL OFF
@@package_name_test
-- EXIT
-- ========== package_name_head.sql starts here ==========
CREATE OR REPLACE PACKAGE pk_package_name
AS
FUNCTION sign_in
( in_user_name IN VARCHAR2
, in_password_txt IN VARCHAR2
RETURN PLS_INTEGER
END pk_package_name;
SHOW ERRORS;
GRANT EXECUTE ON pk_package_name TO schema_name_some_role;
-- ========== package_name_body.sql starts here ==========
CREATE OR REPLACE PACKAGE BODY pk_package_name
AS
-- Procedures related to SCHEMA_NAME ...
-- 2012 July 23 -- Package started with proc_x. (Frank Kulash)
-- ** local procedures and variables **
-- ** x **
-- ** initialization section **
-- The following code is executed once per session, when the package is loaded.
BEGIN
set_var ( 'DT_FMT_TXT'
, 'YYYY-MM-DD HH24:MI:SS'
END pk_package_name;
SHOW ERRORS;
-- ========== package_name_test.sql starts here ==========
-- PACKAGE_NAME_TEST.SQL -- Test procedures in schema_name.pk_package_name
SET DOCUMENT OFF
SET SERVEROUTPUT ON SIZE 10000
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-Mon-YYYY HH24:MI:SS';
SPOOL @@package_name_test.lst
PROMPT
PROMPT ***********************
PROMPT ** Testing x **
PROMPT ***********************
PROMPT
SPOOL OFFThen I replace package_name with fubar, and schema_name with the actual schema name. Finally, I cut off parts from the end to create fubar_test.sql, fubar_body.sql and fubar_head.sql. You could easily include a multi-line procedure comment template in this script. Every time you add a procedure or function, ciopy and paste that comment template, and then modify the copy. -
Hi Experts,
I have on stored procedure which returns mote than one resultset i want that to store in two different temp table how can achieve this in SQL server.
following is the stored procedure and table that i need to create.
create procedure GetData as begin select * from Empselect * from Deptend
create table #tmp1 (Ddeptid int, deptname varchar(500),Location varchar(100))
Insert into #tmp1 (Ddeptid , deptname ,Location )
exec GetData
create table #tmp (empid int , ename varchar(500),DeptId int , salary int)
Insert into #tmp (empId,ename,deptId,salary)
exec GetData
Niraj SevalkarYou cant get two resultsets out of SP like this. The workaround is to merge and bring the resultsets.
For this number of columns as well as corresponding datatypes have to be compatible. Also you will need one additional column which indicates resultset value. Then use this as filter to get your desired resultset out
create procedure GetData as
begin
select 'resultset1' as Cat,*,.. N columns from Emp
union all
select 'resultset2' as Cat,*,.. N columns from Dept
end
create table #tmp1 (Ddeptid int, deptname varchar(500),Location varchar(100))
Insert into #tmp1 (Ddeptid , deptname ,Location )
Select column1,column2,column3
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
Integrated Security=SSPI','Execute yourdb..GetData')
WHERE Cat = 'resultset1'
create table #tmp (empid int , ename varchar(500),DeptId int , salary int)
Insert into #tmp (empId,ename,deptId,salary)
Select column1,column2,column3, column4
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
Integrated Security=SSPI','Execute yourdb..GetData')
WHERE Cat = 'resultset2'
also see
http://sqlblogcasts.com/blogs/madhivanan/archive/2007/11/26/select-columns-from-exec-procedure-name-is-this-possible.aspx
Another method is to populate table with relevant resultset within procedure itself and then select from the table directly outside.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
How to create a LOV based on a stored procedure returning a cursor
Hello,
I've tried to search the forum, but did not find much. We are facing a problem of large LOVs and creating large TMP files on the app server. Our whole application is drived by store procedures. LOVs are built manually by fetching data from cursors returned from stored procedures. That creates the issue when whole LOV needs to be stored in the memory and thus the TMP files.
Is there anyway how to create LOV based on a procedure returning cursor ?
Thank you,
RadovanHello,
As of now we populate the record group by looping through the ref cursor and adding rows into it. Is there a better way? That forces the whole record group to be stored in a memory on the app server.
Thank you,
Radovan -
How to stop SQL Server Agent Job if Stored Procedure returns value 0
I have SQL Server 2012 SSIS.
I have 2 SSIS packages.
I have created SQL Server Agent Job for running packages.
I have created steps. If first step have run succesfully next step is run.
I have need to add new logic.
I have validation stored procedure, which validate DB table values and returns 1 or 0.
I would like to create logic where first of all this SP is runned. Return value of SP determines if steps are run or not.
I was thinking to use Execute SQL Task for running SP.
If value 1 is returned, then run rest of Tasks is run.
If value 0 is returned, what should I do so that Job is stopped? I need assistance!
I want current step to stop never moved to next step.
Is there any SSIS tasks, which can stop the Job?
Or should I make Step for running validation SP?
How to do so that if value 0 is returned stop Job.
Kenny_IPlease refer the below link:
http://technet.microsoft.com/en-us/library/aa260308(v=sql.80).aspx
Please read Remarks carefully!!!
Remarks
If a job is currently executing a step of type CmdExec, the process being run (for example, MyProgram.exe) is forced to end prematurely. Premature ending can result in unpredictable behavior such as files in use by the process being held open. Consequently,
sp_stop_job should be used only in extreme circumstances if the job contains steps of type CmdExec.
Permissions
Execute permissions default to the public role in the
msdb database. A user who can execute this procedure and is a member of the
sysadmin fixed role can stop any job. A user who is not a member of the
sysadmin role can use sp_stop_job to stop only the jobs he/she owns.
When sp_stop_job is invoked by a user who is a member of the
sysadmin fixed server role, sp_stop_job will be executed under the security context in which the SQL Server service is running. When the user is not a member of the
sysadmin group, sp_stop_job will impersonate the SQL Server Agent proxy account, which is specified using
xp_sqlagent_proxy_account. If the proxy account is not available,
sp_stop_job will fail. This is only true for Microsoft® Windows® NT 4.0 and Windows 2000. On Windows 9.x, there is no impersonation and
sp_stop_job is always executed under the security context of the Windows 9.x user who started SQL Server. -
Passing CLOB datatype to a stored procedure
Hi,
How do I pass a CLOB value to a stored procedure?
I am creating a stored procedure which appends a value to a CLOB datatype. The procedure has 2 in parameter (one CLOB and one CLOB). The procedure is compiled but I'm having problem executing it. Below is a simplified version of the procedure and the error given when the procedure is executed.
SQL> CREATE OR REPLACE PROCEDURE prUpdateContent (
2 p_contentId IN NUMBER,
3 p_body IN CLOB)
4 IS
5 v_id NUMBER;
6 v_orig CLOB;
7 v_add CLOB;
8
9 BEGIN
10 v_id := p_contentId;
11 v_add := p_body;
12
13 SELECT body INTO v_orig FROM test WHERE id=v_id FOR UPDATE;
14
15 DBMS_LOB.APPEND(v_orig, v_add);
16 commit;
17 END;
18 /
Procedure created.
SQL> exec prUpdateContent (1, 'testing');
BEGIN prUpdateContent (1, 'testing'); END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PRUPDATECONTENT'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Any help or hints please.
nullsorry I made a mistake with the in parameter types - it's one NUMBER and one CLOB.
-
How do I retrieve a variable from a stored procedure in Access?
Given a stored procedure like the one below,
PROCEDURE getSomething(
pVar1 in float,
pVar2 in float,
pVar3 in float,
pVar4 in float,
pResults out varchar2
How would I retrieve the value in pResults using VBA on Access? Thanks.Using this, you can set the value to the session bean
<c:set property="docID" target="${SessionBean1}" value="${pg_view_doc.hiddenField3.value}"/>
But before that you have to create a property called docid in the sessionbean1.
So once the property is set, through getDocID() method u can retrieve the value
ex: String value=getSessionBean1().getDocID();
will return the value in the required JSF Page bean -
How to fetch %ROWTYPE OUT param of a stored procedure from Java program?
I have a stored procedure that has IN / OUT parameter as table_name%ROWTYPE.
From a java program how can I access this ROWTYPE variable?
I tried all possible documentation and none of the explains whether or not this is supported.
My use case expect exactly 1 record from the procedure and we would prefer not to use REF CURSOR.
Is there a way to achieve this? If so, can someone help me with it by posting the sample code to achieve this?
I tried all the possible OracleTypes to register the OutParameter and they all fail.
Looks like there isn't any equivalent of %ROWTYPE in OracleTypes either.
If you need, I can post my sample procedure that uses %ROWTYPE as OUT parameter.
I really appreciate your help in this regard.
- KarthikHi,
If "returning only 1 record" the showstopper for not using Ref Cursor, you might want to reconsider because as you probably know, the ref cursor is only a pointer and requires additional step to retrieve the data.
Kuassi -
How do i handle out parameter from a stored procedure in a vb form?
hi all,
I want to return a varchar2(500) type of out parameter from a pl/sql stored procedure to a vb form?? how do i do this??
regards
akshayWell, when you create the parameter collection for your command object, just set the correct value for the direction component.
You would set it to one of the below, depending on if the parameter is IN OUT or only OUT:
<parameter_obj>.Direction = ParameterDirectionEnum.adParamInputOutput
<parameter_obj>.Direction = ParameterDirectionEnum.adParamOutput -
How to retrieve the outer parameter of a stored procedure in XSQL page
I have to call a stored procedure in the xsql page that returns a resultset (ie. oracle table/record type) through an outer paramter. Is there any built-in xsql action tag available to get the parameter and present
it in xml on the page? please help, thanks.You cant get two resultsets out of SP like this. The workaround is to merge and bring the resultsets.
For this number of columns as well as corresponding datatypes have to be compatible. Also you will need one additional column which indicates resultset value. Then use this as filter to get your desired resultset out
create procedure GetData as
begin
select 'resultset1' as Cat,*,.. N columns from Emp
union all
select 'resultset2' as Cat,*,.. N columns from Dept
end
create table #tmp1 (Ddeptid int, deptname varchar(500),Location varchar(100))
Insert into #tmp1 (Ddeptid , deptname ,Location )
Select column1,column2,column3
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
Integrated Security=SSPI','Execute yourdb..GetData')
WHERE Cat = 'resultset1'
create table #tmp (empid int , ename varchar(500),DeptId int , salary int)
Insert into #tmp (empId,ename,deptId,salary)
Select column1,column2,column3, column4
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
Integrated Security=SSPI','Execute yourdb..GetData')
WHERE Cat = 'resultset2'
also see
http://sqlblogcasts.com/blogs/madhivanan/archive/2007/11/26/select-columns-from-exec-procedure-name-is-this-possible.aspx
Another method is to populate table with relevant resultset within procedure itself and then select from the table directly outside.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
Resultset returns null while calling a DB2 stored procedure using hibernat
Hi All ,
I am trying to call a db2 stored proc with cursor open from my java code but it always returns me null results though it executes fine when I call the procedure from the command line
Java code....................
CallableStatement stmt3 = EyeHibernateApp.getHibernateSession().connection().prepareCall("{call answers_select_id( ? )}");
stmt3.setString(1,20);
stmt3.execute();
ResultSet rs1 = stmt3.getResultSet();
System.out.println("rs1 " + rs1); --> returns null
procedure-------------
CREATE PROCEDURE answers_select_id (IN question_id bigint )
P1:BEGIN
DECLARE cursor1 CURSOR WITH RETURN TO CLIENT FOR
SELECT a.answer_id from answers as a where a.question_id = question_id;
open cursor1;
END P1;
I am using the same java code with mysql stored procs . It works fine there but I assume open cursors in db2 stored proc is causing the problem . If I can help it , I need to maintain the same java code for mysql ad db2 . Please help me ...
Thanks,
Av~Hi,
I am trying to do something like this but with Oracle stored procedure which returns an associate array and a cursor and these are defined as INOUT. I am not finding a way how to do it with editable row set. Can you plese list the steps used to make things work.
Thanks. -
Resultset returns null while calling a DB2 stored procedure using hibernate
Hi All ,
I am trying to call a db2 stored proc with cursor open from my java code but it always returns me null results though it executes fine when I call the procedure from the command line
Java code....................
CallableStatement stmt3 = EyeHibernateApp.getHibernateSession().connection().prepareCall("{call answers_select_id( ? )}");
stmt3.setString(1,20);
stmt3.execute();
ResultSet rs1 = stmt3.getResultSet();
System.out.println("rs1 " + rs1); --> returns null
procedure-------------
CREATE PROCEDURE answers_select_id (IN question_id bigint )
P1:BEGIN
DECLARE cursor1 CURSOR WITH RETURN TO CLIENT FOR
SELECT a.answer_id from answers as a where a.question_id = question_id;
open cursor1;
END P1;
I am using the same java code with mysql stored procs . It works fine there but I assume open cursors in db2 stored proc is causing the problem . If I can help it , I need to maintain the same java code for mysql ad db2 . Please help me ...
Thanks,
Av~Hi,
I am trying to do something like this but with Oracle stored procedure which returns an associate array and a cursor and these are defined as INOUT. I am not finding a way how to do it with editable row set. Can you plese list the steps used to make things work.
Thanks. -
How can I get the printed message of stored procedure in JPA
Hi, I'm using JPA to invoke stored procedure in database, a segment of the sproc is like below:
if @create_type != 'a1' and @create_type != 'a'
begin
print 'create type must be either ''a1'' if you pass in A1 ID, or ''a'' if you pass in User ID'
select 0 as "Result"
endI can get the 0 as the result, it means business operation failed currently, but how could I get the message of 'create type must be either ''a1'' if you pass in A1 ID, or ''a'' if you pass in User ID'?
That information is important as it indicates why the operation failed.
Thankshow can i get rows count returned by stored procedure in oracle sql developer?
Procedures do NOT return a value - functions return a value.
A procedure executes whatever code it contains. That code could contain many queries that produce many row counts.
Does your procedure take one or more IN, OUT or IN OUT parameters?
See example 8-1 for an example of executing a procedure that has an OUT parameter.
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#CHDBIEEE
Maybe you are looking for
-
When I use javascript "window.history.back()" because a user enter invalid text, Firefox returns to the page with the form on it but it clears out the form. All the other browsers go back to the previous page with the form filled out as it was when s
-
Difference between business blueprint and functional spec
hello can somebody please tell me the difference between business blueprint and functional spec and how they are interrelated Thanks
-
Formatting Excel while rendering from Servlet
I am invoking & displaying contents/data from servlet to Excel using following: response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition"," attachment; filename=\"ClientOperationsReport.csv\""); Before displaying I
-
LINK : open a PDF at a specific size (acrobat X)
Hi all, I'm creating links between several PDF files. For some links, I open the PDF a new window (with regular link options). But, I need to open the pdf at a specific size, as a HTML/ javascript popup. Is ther a way to achieve this? Many thanks in
-
From a PC, how do I store a photo into Photo Stream so that I can access it on iPad?
From a PC, how do I store a photo into Photo Stream so that I can access it on iPad? Like, a Word document can be dropped into iCloud from my PC and it will appear when I open iCloud from my iPad.