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
    Thanks

    In 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 advance

    Thank 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 help

    The 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.
    Roseanne

    I 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 Singh

    Hi,
    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?
    Thanks

    rajendra 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 P

    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?
    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
    Bill

    Look into REF CURSORs. Still not sure about whether APEX uses them though.... Good luck.

Maybe you are looking for