Select in stored procedures 11g
I come from MS Sql Server, so select statements in Oracle are confusing, I have only 3 days experience with Oracle 11g
I have managed to use SELECT INTO in my SP
Can anyone provide an example of select using a for loop_+ AND an example of select using BULK COLLECT_+???
Edited by: user12146310 on Nov 8, 2009 3:51 AM
Hi,
The error tells you that the owner of AB_SELECT_BULK_COLLECT does not have a procedure called ANALYZE_COMPENSATION.
Does he?
select owner, object_name, object_type
from all_objects
where object_name in ('AB_SELECT_BULK_COLLECT', 'ANALYZE_COMPENSATION');Furthermore, in general when you can do something in SQL you should do it it in SQL only. I.e. without PL/SQL.
You are doing "something" with all employees, this tells me that, that something maybe could and therefore should be done in a single SQL statement.
Final thing, look into packages. Don't write stand-alone functions and procedures.
Regards
Peter
Similar Messages
-
Problem with Update Select in Stored procedure
I am using Oracle 8. I'm writing a StoredProcedure and Oracle doesn't like the statement:
update
Leave_Coverages
set
Rate_Monthly = Rate_Monthly + (select Rate_Monthly from Leave_coverages where Leave_Coverage_ID = 10800)
where
Leave_Coverage_ID = 10799;
When I run the above statement from the command line - I have no problem. This statement in the stored procedure works:
update
Leave_Coverages
set
Rate_Monthly = Rate_Monthly + 4
where
Leave_Coverage_ID = 10799;
So essentially, I'm having trouble using a select in an update statement, but only in a Stored Procedure.Denis,
This question was answered on this forum in the last week or so but I wasn't quickly able to locate this post.
Basically Oracle prior to version 9 had an SQL parser and a separate PL/SQL parser. The PL/SQL parser had to be updated each time new features were added to the SQL parser; often it lagged behind so that there were things you could do in plain SQL but weren't supported when using the same SQL in a cursor or directly in PL/SQL (with an INTO clause or RETURNING ... INTO clause).
From Oracle 9 these two parsers have been rolled into one so that new features introduced into SQL automatically also become available when used from PL/SQL.
So the answer to your curiousity on whether it will work in 9 or 10 is: if it works in SQL it should work just fine from PL/SQL.
Cheerio,
Colin -
Error in a Select with a second Select in stored procedure.
Hi,
Can you help me please to know why this query works in a PL/SQL Console but not in a stored procedure.
Query :
SELECT
variable1,
variable2,
(SELECT sum(variables) FROM foo), <---- Error here
FROM
bar
this query works in console but if i compile a stored procedure with this i have the error :
Compilation errors for PACKAGE BODY INFOC.BSS
Error: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + mod not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string>
Line: 2804
For information, i use Oracle 8 and PL/SQL Developer
ThanksIn earlier versions of Oracle (like 8) there are some differences between the SQL engine and the SQL engine in PL/SQL. Things that work in SQL may not work on PL/SQL. I can replicate your error in my 8.1.7.4 instance, but it works correctly in my 9.2 instance. I don't have anything in between to test, so I can't tell you which version it will work on.
The workaround is to create a view in the database using the query, and query that view in your stored procedure.
HTH
John -
Disconnected rowset CachedRowSet from a select inside stored procedure?
Hello everyone
I am using CachedRowSet returning it from a parameterised select statement and it works fine.
If I put the same select statement into a simple read-only stored procedure then I get this exception: "A result set was generated for update".
I am not trying to update the rowset in my code.
I tried to make the CachedRowSet to be read-only but it does not help, same error.
Question 1 : can a stored procedure returning a single result-set be called to populate a read-only CachedRowSet? (in a similar fashion to a CallableStatement prepareCall method with input/output parameters).
Question 2: in general is using CachedRowSet, WebRowSet, FilteredRowSet (disconnected) and JDBCRowSet (connected) something to be encouraged for future develpment or are they deprecated, or replaced by something else/better??
thank you very much in advanceThank you for the initial bite.
This is for Microsoft SQL Server 2008 using Microsoft JDBC driver, type 4.0.
The T-SQL stored procedure has a single select statement in it - see inside code.
Below is the Java 6 source code (including the Java import statements, many unused at the moment), apologies for poor indendation, its a cut and paste problem.
// start of Java code
import java.io.*;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.microsoft.sqlserver.jdbc.*;
import com.microsoft.sqlserver.jdbc.SQLServerDriver.*;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;
import java.math.BigDecimal;
import com.sun.rowset.CachedRowSetImpl;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.spi.SyncProviderException;
import javax.sql.rowset.spi.SyncResolver;
public class JdbcRowSetTesting
public static void main(String[] args)
String connectionUrl =
"jdbc:sqlserver://ABCDE-SERVER:1433;" +
"databaseName=SecurityTransaction;integratedSecurity=false;user=somedbuser;password=somesortofpassword";
Connection conn = null;
Statement sqlstmt = null;
ResultSet rs = null;
CachedRowSet crs = null;
try
conn = DriverManager.getConnection(connectionUrl);
System.out.println("inside try block, connected");
conn.setAutoCommit(false);
crs = new CachedRowSetImpl();
crs.setUrl(connectionUrl);
crs.setReadOnly(true);
crs.setType(ResultSet.TYPE_FORWARD_ONLY);
crs.setConcurrency(ResultSet.CONCUR_READ_ONLY);
System.out.println("inside try block, connected to CachedRowSet URL");
// this works fine:
crs.setCommand("select ADDRESSID, COUNTRY, POSTCODE, STATE, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CREATEDBY, CREATEDDATE, UPDATEDBY, UPDATEDDATE from dbo.address where ADDRESSID > ?;");
-- this does not work - the SP has the same SELECT as above inside it:
crs.setCommand("{ call dbo.p_testCachedJDBCRowSet (?) }");
crs.setInt(1, 10);
crs.execute();
while (crs.next())
System.out.println("" + crs.getInt("ADDRESSID") + " " +
crs.getString("ADDRESS1"));
catch (Exception e)
System.out.println("inside catch block, calling Exception printStackTrace(); method now:");
e.printStackTrace();
finally
System.out.println("inside finally block");
if (rs != null) try { rs.close(); } catch(Exception e) { e.printStackTrace(); }
if (sqlstmt != null) try { sqlstmt.close(); } catch(Exception e) { e.printStackTrace(); }
if (conn != null) try { conn.close(); } catch(Exception e) { e.printStackTrace(); }
return;
// end of Java source code -
Use of a stored procedure in a select statement submitted to cx_oracle
Hi,
I am developping under python and I'm using the cx_oracle interface.
I've written a stored procedure that I've tested directly under sqlplus session : it's ok. I've also tested this stored procedure from python by using callproc routine : its also ok.
Now I need to use this procedure within a select statement that I submit to the execute statement of cx_oracle as :
s = "select a.airport_name,gmlpos.ExpLatLong(a.point_name) from airport"
self.db = oracledb('ops/opeope00@ACE2008B')
dbmsg = self.db.execute(s)
IF (dbmsg == "") :
An error occurs :
Message = request = select a.AIRPORT_NAME, gmlpos.ExpLatLong(a.point_name) from airport, errmsg = ORA-00904: "GMLPOS"."EXPLATLONG": invalid identifier
Noting that the execution of any other select (without stored procedure) order from python works fine.
Is anybody has a solution or workaround ?
thanks a lot for your helpThe result gives what is expected :
AIRP
GMLPOS.EXPLATLONG(A.POINT_NAME)
LFLL
-45.71666666666667 -5.08333333333333
As I said the stored procedure works fine.
Thanks for your expertise
PS : why change the login password until nobody says which machine or database is concerned ? -
Stored Procedure in Crysral Sub Reports
Hi
I am using Crystal XI with an ODBC connection to an Oracle database.
We had a sub report that used a view as it's data source. We needed to change that report to use a stored procedure with an input parameter.
When I changed the report to use the stored procedure as the data source, I never get prompted for the input parameter.
To make sure the stored procedure worked, I created a new report, selected the stored procedure and got prompted for the parameter which then was under the parameter fields in the field explorer.
Why doesn't that happen on the report I am trying to modify.
RoseanneI have a parameter in the sub-links but it doesnt look like it passess anything to the stored procedure.
This is why I was questioning why I dont get prompted for a paramter when I added the stored procedure as my data source. -
Creating Stored Procedure Task - Adapter Factory, Entity Adapter
Hi All,
I am trying to create a Stored Procedure Task for an Entity Adapter within the OIM design console. I can connect to the database (Connection Status = Connection Established), but the Schema and Procedure dropdown boxes remain empty so I am unable to select the stored procedure I am wanting to run.
OIM version 11.1.2.0.7
MS SQL Server 2008 R2
sqljdbc4.jar
I can connect and execute the stored procedure locally on the SQL server as the user I am connecting as from OIM and have also tried to connect as the SA user.
Can anybody suggest anything I need to check or need to enable/modify to be able to see the stored procedure?I found this blurb with a quick google search:
byte[] myByteArray = System.Text.Encoding.ASCII.GetBytes("a text string");
string myString = System.Text.Encoding.ASCII.GetString(myByteArray );
See if this helps to turn the byte array into a string.
-Kevin -
Stored Procedure To Block if A/R Delivery Qty Qty in Sales Order
Hi Experts,
Can we Block to post the A/R Delivery Document if the quantity is greater than the quantity mentioned in the Sales order (Base Document).
If We can Please Help me with the procedure
With regards,
G.Eshvanth SinghHi,
Here is a store procedure to block delivery creation if its qty is exceeding SO qty:
IF @transaction_type IN (N'A', N'U') AND
(@Object_type = N'20')
begin
if exists (SELECT T0.BaseEntry, SUM(T0.Quantity)
FROM [dbo].[DLN1] T0 INNER
JOIN [dbo].[RDR1] T1 ON T1.DOCENTRY =
T0.BASEENTRY
WHERE T0.BaseType = 22 AND T0.ItemCode =
T1.ItemCode AND T0.BaseLine = T1.LineNum
and T0.DOCENTRY = @list_of_cols_val_tab_del
GROUP BY T0.BaseEntry
HAVING (SUM(T0.Quantity) > SUM(T1.Quantity)) or sum(t0.quantity) > sum(t0.BaseOpnQty))
begin
select @Error = 10, @error_message = 'GRPO
quantity is over PO quantity'
end
end
you place the SP_TN into your SQL server SBO company database programmability --> system store procedures --> dbo.SBO_SP_TransactionNotification --> right click this dbo --> select Script stored Procedure as select Alter to New query editor,
the result will be as follows:
@object_type nvarchar(20), -- SBO Object Type
@transaction_type nchar(1), -- [A]dd, <u>pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
declare @error_message nvarchar (200) -- Error string to be displayed
select @error = 0
select @error_message = N'Ok'
-- ADD YOUR CODE HERE
-- Select the return values
select @error, @error_message
end
GO
There are five out parameters:
Put the code I have given in the -- ADD YOUR CODE HERE part.
let me know your e-mail address if you want to have SP_TN pdf file from SAP
Rgds, -
How to get multiple out parameters from a pl/sql stored procedure in ADF Jdeveloper 11g release2
I´m trying to call from AppModuleImpl a stored procedure from my oracle DB which receives one input parameter and returns 5 out parameters.
I´m using jdeveloper 11g release2 ADF and I have created a java bean "ProRecallPlatesBean " with the atributes and accesors and I serialize it. just like in this article http://docs.oracle.com/cd/E24382_01/web.1112/e16182/bcadvgen.htm#sm0297
This is my code so far:
public ProRecallPlatesBean getCallProRecallPlates(String numPlates) {
CallableStatement st = null;
try {
// 1. Define the PL/SQL block for the statement to invoke
String stmt = "begin CTS.Pk_PreIn.proRecallPlates(?,?,?,?,?,?); end;";
// 2. Create the CallableStatement for the PL/SQL block
st = getDBTransaction().createCallableStatement(stmt,0);
// 3. Register the positions and types of the OUT parameters
st.registerOutParameter(2,Types.VARCHAR);
st.registerOutParameter(3,Types.VARCHAR);
st.registerOutParameter(4,Types.VARCHAR);
st.registerOutParameter(5,Types.VARCHAR);
st.registerOutParameter(6,Types.VARCHAR);
// 4. Set the bind values of the IN parameters
st.setString(1,numPlates);
// 5. Execute the statement
st.executeUpdate();
// 6. Create a bean to hold the multiple return values
ProRecallPlatesBean result = new ProRecallPlatesBean();
// 7. Set values of properties using OUT params
result.setSpfVal(st.getString(2));
result.setTransportTypeVal(st.getString(3));
result.setTransportCompanyVal(st.getString(4));
result.setCompanyDescrVal(st.getString(5));
result.setDGAPrint(st.getString(6));
// 8. Return the result
return result;
} catch (SQLException e) {
throw new JboException(e);
} finally {
if (st != null) {
try {
// 9. Close the JDBC CallableStatement
st.close();
catch (SQLException e) {}
In Jdeveloper I went into AppModule.xml JAVA>Client Interface section and expose "getCallProRecallPlates" Then I can see "getCallProRecallPlates" in Data Controls, I drag and drop it to a JSF page, an input text component and a button are generated in order to put in there the procedure input parameter (numPlates).
I don't know if I'm on the right track.
When I click the button, the "result" variable is supposed to be filled with data from the stored procedure. I want each of those values to be displayed in Output text or input text adf components but I dont know how. Thank you very much in advance I´m a newbie and i'll appreciate your help!What version are you on?
Works fine for me on my 11g:
SQL> create or replace procedure testxml (clob_out out clob)
2 is
3 l_clob clob;
4 l_ctx dbms_xmlquery.ctxhandle;
5 begin
6 l_ctx := dbms_xmlquery.newcontext ('select * from dual');
7 l_clob := dbms_xmlquery.getxml (l_ctx);
8 clob_out := l_clob;
9 dbms_xmlquery.closecontext (l_ctx);
10 end testxml;
11 /
Procedure created.
SQL>
SQL> variable vout clob;
SQL>
SQL> exec testxml (:vout)
PL/SQL procedure successfully completed.
SQL>
SQL> print vout
VOUT
<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<DUMMY>X</DUMMY>
</ROW>
</ROWSET>But definitely you can optimize your proc a bit: Try
create or replace procedure testxml (clob_out in out nocopy clob)
is
l_ctx dbms_xmlquery.ctxhandle;
begin
l_ctx := dbms_xmlquery.newcontext ('select * from dual');
clob_out := dbms_xmlquery.getxml (l_ctx);
dbms_xmlquery.closecontext (l_ctx);
end testxml;
/ -
MS SQL Server system stored procedures can't be migrated into Oracle 11g
During database migration from MS SQL Server 2008 to Oracle 11g R2, if the application stored procedure invokes the MS SQL Server system stored procedures (for example: sp_getapplock, sp_releaseapplock ....), these SQL server system stored procedures can't be transferred. See following migrated Oracle application stored procedure for example:
create or replace
PROCEDURE spPwSysID_GetNextID
v_ID OUT NUMBER,
iv_SysType IN NVARCHAR2 DEFAULT NULL ,
iv_Cnt IN NUMBER DEFAULT NULL
AS
v_SysType NVARCHAR2(50) := iv_SysType;
v_Cnt NUMBER(10,0) := iv_Cnt;
v_result NUMBER(10,0);
BEGIN
--SQL Server BEGIN TRANSACTION;
utils.incrementTrancount;
v_Systype := UPPER(v_Systype) ;
IF v_Cnt < 1 THEN
v_Cnt := 1 ;
END IF;
v_result :=sp_getapplock(v_Resource => v_Systype,
v_LockMode => 'Exclusive') ;
IF v_result >= 0 THEN
BEGIN
SELECT ID
INTO v_ID
FROM PWSYSID
WHERE SysType = v_SysType;
IF SQL%ROWCOUNT = 1 THEN
UPDATE PwSysID
SET ID = ID + v_cnt
WHERE SysType = v_SysType;
ELSE
BEGIN
INSERT INTO PwSysID
( ID, SysType )
VALUES ( v_cnt + 1, v_SysType );
v_ID := 1 ;
END;
END IF;
v_result :=sp_releaseapplock(v_Resource => v_Systype) ;
END;
ELSE
BEGIN
raise_application_error( -20002, 'Lock failed to acquire to generate Cityworks Id.' );
END;
END IF;
utils.commit_transaction;
END;During database migration from MS SQL Server 2008 to Oracle 11g R2, if the application stored procedure invokes the MS SQL Server system stored procedures (for example: sp_getapplock, sp_releaseapplock ....), these SQL server system stored procedures can't be transferred. See following migrated Oracle application stored procedure for example:
create or replace
PROCEDURE spPwSysID_GetNextID
v_ID OUT NUMBER,
iv_SysType IN NVARCHAR2 DEFAULT NULL ,
iv_Cnt IN NUMBER DEFAULT NULL
AS
v_SysType NVARCHAR2(50) := iv_SysType;
v_Cnt NUMBER(10,0) := iv_Cnt;
v_result NUMBER(10,0);
BEGIN
--SQL Server BEGIN TRANSACTION;
utils.incrementTrancount;
v_Systype := UPPER(v_Systype) ;
IF v_Cnt < 1 THEN
v_Cnt := 1 ;
END IF;
v_result :=sp_getapplock(v_Resource => v_Systype,
v_LockMode => 'Exclusive') ;
IF v_result >= 0 THEN
BEGIN
SELECT ID
INTO v_ID
FROM PWSYSID
WHERE SysType = v_SysType;
IF SQL%ROWCOUNT = 1 THEN
UPDATE PwSysID
SET ID = ID + v_cnt
WHERE SysType = v_SysType;
ELSE
BEGIN
INSERT INTO PwSysID
( ID, SysType )
VALUES ( v_cnt + 1, v_SysType );
v_ID := 1 ;
END;
END IF;
v_result :=sp_releaseapplock(v_Resource => v_Systype) ;
END;
ELSE
BEGIN
raise_application_error( -20002, 'Lock failed to acquire to generate Cityworks Id.' );
END;
END IF;
utils.commit_transaction;
END; -
Simple stored procedure - select with an if statement, returning a cursor
Hi,
I'm trying to create a very simple stored procedure, but having never worked with them before I'm not quite sure what I'm doing wrong.
Here's my code:
create or replace
procedure contact_return(
v_contact_id IN varchar2,
p_cursor OUT SYS_REFCURSOR)
AS
begin
set sql_statement varchar2(4000) := '
SELECT URN,
FIRSTNAME,
LASTNAME,
TITLE,
CREATED_DT,
AREA_URN,
MOBILE,
WORK,
EMAIL,
ORG_NAME,
ADDRESS,
POSTCODE,
IN_USE
FROM CONTACT';
if v_contact_id is not null then
sql_statement := sql_statement || ' where urn = ' || v_contact_id;
end if;
open p_cursor for sql_statement;
end;
It's actually returning 2 errors:
Error(7,3): PL/SQL: SQL Statement ignored
Error(7,7): PL/SQL: ORA-00922: missing or invalid option
Which seem to be a problem with my set sql_statement line, but it looks correct to me?
Thanksrajendra wrote:
Dear User,
It is not allowed to declare a variable inside the PL/SQL block means after begin ( in your case line no 7 ).
Lot of errors in your code.
Tell me your exact requirement and what you want to do , after that I will be able to solve your problem.
Thanks,
Rajendra
Well, you can declare after the begin, though it'll be as part of an embedded code block e.g.
SQL> ed
Wrote file afiedt.buf
1 create or replace procedure contact_return(empno IN number
2 ,c OUT SYS_REFCURSOR
3 ) AS
4 begin
5 declare
6 sql_statement varchar2(4000) := '
7 select *
8 from emp
9 where empno = nvl(:1,empno)';
10 begin
11 open c for sql_statement using contact_return.empno;
12 end;
13* end;
SQL> /
Procedure created.
SQL> var x refcursor
SQL> exec contact_return(7788,:x);
PL/SQL procedure successfully completed.
SQL> print x;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7788 SCOTT ANALYST 7566 19-APR-1987 00:00:00 3000 20
so, it is allowed, as long as it's coded correctly. -
CallableStatament for selection stored procedure
hello,
i write a jsp page where there are inputs. when i click on a button i want to search elements in my sql server database. to do that, i call a stored procedure :
CREATE PROCEDURE PS_ELTS
@param0 VARCHAR(40),
@param1 VARCHAR(10),
@param2 VARCHAR(6),
@param3 VARCHAR(6),
@param4 VARCHAR(40)
AS
SELECT ELTS.NAME,
ELTS.TEL,
ELTS.ADR1,
ELTS.ADR2,
ELTS.SERV
FROM ELTS
WHERE (ELTS.NAME LIKE @param0 OR @param0 IS NULL)
AND (ELTS.TEL LIKE @param1 OR @param1 IS NULL)
AND (ELTS.ADR1 LIKE @param2 OR @param2 IS NULL)
AND (ELTS.ADR2 LIKE @param3 OR @param3 IS NULL)
AND (ELTS.SERV LIKE @param4 OR @param4 IS NULL)
ORDER BY ELTS.NAME, ELTS.TEL
i have a java class elts as business object. in the class, there is a method search which takes an elts event, connects to the database and gets elements which are ok. if all parameters are null, i get every lines of ELTS table. it's ok. if one or more of the parametre is not null, i don't get any line. this is the method :
public void search(UtilBean bean) throws Exception {
int i = 0;
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, login, password);
if (connection != null) {
connectionOk = true;
this.setNAME(beanrecherche.getNAME());
this.setTEL(beanrecherche.getTEL());
this.setADR1(beanrecherche.getADR1());
this.setADR2(beanrecherche.getADR2());
this.setSERV(beanrecherche.getSERV());
String aProc = "{call PS_ELTS(?,?,?,?,?)}";
CallableStatement aStatement = connection.prepareCall(aProc);
aStatement.setString(1, fmt_sqlChaineLike(this.getNAME()));
aStatement.setString(2, fmt_sqlChaineLike(this.getTEL()));
aStatement.setString(3, fmt_sqlChaineLike(this.getADR1()));
aStatement.setString(4, fmt_sqlChaineLike(this.getADR2()));
aStatement.setString(5, fmt_sqlChaineLike(this.getSERV()));
aStatement.execute();
ResultSet rs = aStatement.getResultSet();
while (rs.next()) {
i++;
UtilBean util = new UtilBean();
util.setNAME(rs.getString("NAME"));
util.setTEL(rs.getString("TEL"));
util.setADR1(rs.getString("ADR1"));
util.setADR2(rs.getString("ADR2"));
util.setSERV(rs.getString("SERV"));
listUtil.add(util);
do i do something wrong ? is there a solution to this problem ?i found what's wrong. in my stored procedure, i defined parameters like this :
@param0 VARCHAR(40),
@param1 VARCHAR(10),
@param2 VARCHAR(6),
@param3 VARCHAR(6),
@param4 VARCHAR(40)
when i use :
aStatement.setString(1, this.getNAME());
java sends a 40 characters long string to the stored procedure so if i write 'hello', the stored procedure gets 'hello '. any element is like that in the database so i must change the stored procedure :
(ELTS.NAME LIKE @param0 OR @param0 IS NULL) became (ELTS.NAME LIKE rtrim(ltrim(@param0)) OR @param0 IS NULL) -
Can we get data return from stored procedure in a select query ?
Hello,
Suppose i have a function GetSum(x,y) that returns sum of two numbers x and y .We can call this function from within a sql function like this :
select GetSum(4,5) SUM from dual;But is this possible through a stored procedure ? i.e., can i call a stored procedure from within a select query like i have done in above code ?Hi,
bootstrap wrote:
Hello,
Suppose i have a function GetSum(x,y) that returns sum of two numbers x and y .We can call this function from within a sql function like this :
select GetSum(4,5) SUM from dual;But is this possible through a stored procedure ? i.e., can i call a stored procedure from within a select query like i have done in above code ?The short answer has already been given.
Why can't you use a function?
Suppose you could use a procedure. What results would you want to see from:
SELECT my_proc (4, 5)
FROM dual
;? Why?
Explain what you want to do, and somebody will help you find a good way to do it. -
How to select from a stored procedure?
Lets say I have a simple stored procedures
Create Procedure stp_test
As
Begin
Select * from tbl1
End
Go
I would like to be able to do this in SSMS (actually, I want to do this from ADODB)
Select top 10 * from ...stp_test... Order By rowID
It looks like I want to use OpenQuery on the stored Procedure, but I have not been able to do it correctly. How can I query my stored procedure?
Rich PIt looks like I want to use OpenQuery on the stored Procedure, but I have not been able to do it correctly. How can I query my stored procedure?
If you want to use the OPENQUERY method , use the following.. follow this link...
http://stackoverflow.com/questions/209383/select-columns-from-result-set-of-stored-procedure
Please mark as answer, if this has helped you solve the issue.
Good Luck :) visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles. -
SELECT statement in stored procedure
I want to be able to execute a simple SELECT statement from within a stored procedure and return a stream of data which consists of all the rows from the SELECT statement.
Ultimately, I want to ouput this stream of data to a Crystal Report.
Apparently, Oracle will not allow you to execute a simple SELECT statement from within a stored procedure. It will only allow execution of a SELECT INTO statment, which requires that you define a cursor, etc. etc.
Any way around this?
Thanks
BillLook into REF CURSORs. Still not sure about whether APEX uses them though.... Good luck.
Maybe you are looking for
-
Error message: Can't open the illustration. The illustration-
Can't open the illustration. The illustration exceeds an implemention limit. Offending operator: '%%HiResBoundingBox: -1229.2598 -6416.8828 I might have mis counted the number of brackets. Any idea what is up with my file? It worked yesterday, and fo
-
Please tell me I can get my music back. Or if I need to go to the apple store and ask?
-
Portal entitlement SecurityException
Hi all, I get an error while evaluating the portal entitlement. We modified de Subject by adding a new principal whith de next code: UserImpl principal = new UserImpl(userName); Security.getCurrentSubject().getPrincipals().add(principal); And this is
-
I can not get my computer to speak to me
i mean sometimes it works and sometimes it does not
-
Pictures stops sequencing in iMovie Timelapse
Hi I have a problem trying to make a timelapse with iMovie. I have read somewhere else that this problem is quite common but I can't find any solution to it.. I have loaded the photos to use into iPhoto and from there into iMovie who has made thumbna