RowID as parameter in the Procedure valid or invalid?

Dear All,
Can any one please let me know is it allowed to pass ROWID as a parameter from one PL/SQL procedure to other PL/SQL procedure? If yes, could you plase let me know the procedure.
Thanks

SQL> set serveroutput on
SQL> create table dummy(id number, ename varchar2(32))
  2  /
Table created.
SQL> insert into dummy values(1, 'Scott')
  2  /
1 row created.
SQL> create or replace procedure show_record(p_rowid rowid) is
  2    l_ename dummy.ename%type;
  3  begin
  4   select ename into l_ename from dummy where rowid=p_rowid;
  5   dbms_output.put_line(l_ename);
  6  end show_record;
  7  /
Procedure created.
SQL> select rowid, id from dummy
  2  /
ROWID                      ID
AAEbRAAABAAAWfSAAA          1
SQL> exec show_record('AAEbRAAABAAAWfSAAA');
Scott
PL/SQL procedure successfully completed.

Similar Messages

  • Passing a Parameter to the Procedure and changing it in the Procedure

    Hi all,
    I am trying to pass a parameter to a procedure like this.
    PROCEDURE FLASH_PHY
    (date_begin IN DATE, date_end IN DATE)
    IS
    I am trying to do SELECT and INSERT based on the date range passed in the procedure as mentioned above. And I am trying to do something like this.
    SELECT NVL(sum(charges),0),count(summary_balances_id)
    INTO lnu_charges_6months,c_summary
    FROM SUMMARY_BALANCES
    WHERE period_begin BETWEEN ADD_MONTHS((date_begin), -6) -- AND ADD_MONTHS((date_end), -1);
    UPDATE summary_balances
    SET cummulative_charges_6mo = lnu_charges_6months;
    how should I do this parameter change. Right now if I use this select statement than it does not return anything as the parameter is passed on the procedure level. I am under the impression that when you pass a parameter to the procedure like this you can't change it into the procedure.
    PLEASE GUIDE. Thanks a bunch. I really appreciate it.

    From what I understand your variables that are passed into the
    procedure can be manipulated as local variable to the procedure.
    Here is my interpretation of what your attempting to do:
    create or replace procedure A (x in number) IS
    yes varchar2(3) := 'No';
    begin
    dbms_output.put_line('Start value for yes:'||yes);
    select 'yes' into yes from dual where x+1 = 2;
    dbms_output.put_line('End value for yes:'||yes);
    end;
    Call the procedure called "A" passing in a "1".
    EG:
    BEGIN
    A(1);
    END;
    Does this answer your question?
    ,Russ

  • Pass parameter to the custom validator

    Hi, How can we pass parameters to the custom validator, i want something like:
    <f:validator validatorId="validators.dateRangeValidaor">
         <f:param id="toDate" value="#{issue.toDate}"/>
         <f:param id="fromDate" value="#{issue.fromDate}"/>     
    </f:validator>but tld dosnot support f:param tags in f:validator tag, is there any possible solution for that??

    Use f:attribute; something like as follows:<h:inputText ...>
      <f:validator .../>
      <f:attribute name="toDate" value="#{issue.toDate}"/>
      <f:attribute name="fromDate" value="#{issue.fromDate}"/>
    </h:inputText>Note that these attributes are not of the validator but of the parent component.
    You can get these attributes using UIComponent.getAttributes().get("toDate").
    I think this is not so friendly for page authors.
    So, I recommend you to develop a custom validator tag which can be specified
    the parameters you want.

  • Convert String to CLOB problem, CLOB is a input parameter in the procedure.

    I can not flush and close "Writer"??
    The following code:
    CLOB inclob=null;
    CallableStatement csr=conn.prepareCall ("begin TestClob(?); end;");
    csr.registerOutParameter (1, Types.CLOB);
    inclob = CLOB.createTemporary(conn,false,CLOB.DURATION_CALL);
    inclob .open(CLOB.MODE_READWRITE);
    Writer tempClobWriter = inclob.getCharacterOutputStream();
    tempClobWriter.write("This is In CLOB");
    // Flush and close the stream
    tempClobWriter.flush(); // problem is here
    tempClobWriter.close();//problem is here
    inclob.close();// this works
    Btw:
    How to use CLOB.setString() to specify string to CLOB directly?
    Message was edited by:
    user515324

    sorry, I fogot mention the error is "No data to read from socket"
    My Oracle JDBC driver is 9.2.0.4, Oracle database is 10.2.1.0
    Some guy said it is driver's problem.

  • Issue with IN parameter of Oracle Procedure returning two RefCursors...

    Hi all,
    I'm having a nightmare with an Oracle procedure that takes one input parameter and returns two RefCursors as outputs. I recently got help in this forum getting a procedure to work that took no inputs but returned two refcursors and that's still working fine. So, for my current issue I have a procedure defined as follows:
    PROCEDURE getQueueInfo(domainKey char, importQueues OUT ODPNet.refcur, exportQueues OUT ODPNet.refcur) IS
      BEGIN
        OPEN importQueues FOR SELECT
        source_key, source_applid,
        import_status(source_key) as status,
        time_added, time_processed
        FROM wm_import_source_header
        WHERE source_id = domainKey
        ORDER BY source_key DESC;
        OPEN exportQueues FOR SELECT
        h.source_key, d.source_applid,
        export_status(h.source_key) as status,
        d.source_wire_code, d.destination_wire_code, h.time_added,
        h.time_transmitted
        FROM wm_export_source_header h, wm_export_source_data d
        WHERE h.source_key = d.source_key
          and d.source_id = domainKey
        ORDER BY h.source_key DESC;
      END getQueueInfo;This is defined within a package called ODPNet as with my previous procedure and all works fine (I can execute within Oracle SQL Developer and it returns the expected results). Within my .NET application my code is as follows:
                try
                    using (OracleConnection conn = new OracleConnection(connString))
                    using (OracleCommand comm = new OracleCommand())
                        comm.CommandText = "ODPNet.getQueueInfo";
                        comm.CommandType = CommandType.StoredProcedure;
                        comm.Connection = conn;
                        OracleParameter domainKey = new OracleParameter();
                        OracleParameter importQueues = new OracleParameter();
                        OracleParameter exportQueues = new OracleParameter();
                        domainKey.OracleDbType = OracleDbType.Char;
                        importQueues.OracleDbType = OracleDbType.RefCursor;
                        exportQueues.OracleDbType = OracleDbType.RefCursor;
                        domainKey.Value = "UKBD72";
                        domainKey.Direction = ParameterDirection.Input;
                        importQueues.Direction = ParameterDirection.Output;
                        exportQueues.Direction = ParameterDirection.Output;
                        comm.Parameters.Add(domainKey);
                        comm.Parameters.Add(importQueues);
                        comm.Parameters.Add(exportQueues);
                        conn.Open();
                        comm.ExecuteNonQuery();
                        OracleDataReader dr1 = ((OracleRefCursor)importQueues.Value).GetDataReader();
                        OracleDataReader dr2 = ((OracleRefCursor)exportQueues.Value).GetDataReader();
                        if (dr1.HasRows)
                            while (dr1.Read())
                                result6 += dr1["source_applid"].ToString() + "<br>";
                        else
                            result6 += "No Rows";
                        if (dr2.HasRows)
                            while (dr2.Read())
                                result7 += dr2["source_applid"].ToString() + "<br>";
                        else
                            result7 += "No Rows";
                catch (Exception ex)
                    result6 = ex.ToString();
                }The value I want to submit as the IN parameter of the procedure is "UKBD72". but I'm really not sure how to apply this and then return my two refcursors into separate datareaders (except for the input parameter stuff the code above is exactly what I did with the other procedure that returned two ref cursors and still works fine). When I run this code I get no errors, I just get told that each DataReader has no rows returned, which shouldn't be right.
    Any help with this would be hugely appreciated.
    Cheers,
    Seb

    Sorry folks, after staring at this over and over, eventually going to sleep and coming back to it with some fresh eyes I realised I was just being a complete idiot - I was feeding the procedure different data in the .NET app than I was when testing in Oracle SQL Developer. Low and behold once I gave it the right data it worked!
    Silly me...

  • How can i pass second text  value to the procedure.

    Hi ,
    I have used APEX_ITEM.TEXT(1,null) Item_name,APEX_ITEM.TEXT(2,null) file_name in a sql query and i should pass these two text value as a input parameter to the Procedure.
    So in Process i have written code like
    FOR i IN 1 .. APEX_Application.g_f01.COUNT
    LOOP
    generate_report_data(APEX_Application.g_f01(i)
    ,APEX_Application.g_f02(i)
    END LOOP;
    COMMIT;
    if i enter values in two text columns then two values are passing to a procedure it's fine.
    Here the issue is if i leave the first value as balnk and enter the 2 nd value like Xyz then click on a submit button
    so 2 nd value also passing null to the procedure..
    please anybody guide on this issue..
    Thanks in advance..
    Regards
    Narender B

    Hello Narender,
    >
    Here the issue is if i leave the first value as balnk and enter the 2 nd value like Xyz then click on a submit button
    so 2 nd value also passing null to the procedure..
    >
    This is happening because of FOR i IN 1 .. APEX_Application.g_f01.COUNT in your procedure:
    >
    FOR i IN 1 .. APEX_Application.g_f01.COUNT
    LOOP
    generate_report_data(APEX_Application.g_f01(i)
    ,APEX_Application.g_f02(i)
    END LOOP;
    COMMIT;
    >
    FOR i IN 1 .. APEX_Application.g_f01.COUNT this loop will take only those values of apex_application.g_f01 into consideration whose value is not null.
    Hope it helps!
    Regards,
    Kiran

  • Passing the sequence as a parameter to a procedure.

    I want to use the sequence value in the call to a procedure.
    Something like :
    EXEC sp_Calling(SEQ_PASS.NEXTVAL);
    but this isnt allowed as the parameter declaration is a number.
    Can anyone tell me how I can resolve this.
    plus i dont wanto use a variable like :i
    as want to run this EXEC a couple of hundred times. So i'll have to take the nextval in 'i' before every EXEC statement.
    Is there any preprocessing alternative.
    Thanx.

    You could create a loop outside the procedure, something like :
    SQL> declare
      2     seq_num number;
      3  begin
      4     for i in 1..<N> loop
      5             select <sequence name>.nextval into seq_num from dual;
      6             <procedure name>(seq_num);
      7     end loop;
      8  end;
    SQL>

  • Problem in OUT Parameter in the stored procedure

    Hi,
    I have a problem in the OUT parameter of the stored procedure under the package. I encountered the error PLS-00306. Below are the codes.
    Package
    CREATE OR REPLACE package body test as
         procedure sp_countries(rst OUT country_typ) as
         sql_stmt VARCHAR2(300);
         begin
         sql_stmt := 'SELECT * FROM countries WHERE region_id = 1';
         OPEN rst FOR sql_stmt;     
         end;
    end test;
    by the way. i declared the country_typ as this:
    TYPE country_typ IS REF CURSOR;
    Here is the code that will call this package:
    declare
    tst countries%ROWTYPE;
    begin
    test.sp_countries(tst);
    dbms_output.put_line(tst.country_name);
    end;

    Works for me. Although I had to use emp instead of your table:
    SQL> create or replace
      2  package test as
      3     TYPE country_typ IS REF CURSOR;
      4     procedure sp_countries(rst OUT country_typ);
      5  end;
      6  /
    Package created.
    SQL> CREATE OR REPLACE
      2  package body test as
      3     procedure sp_countries(rst OUT country_typ) as
      4        sql_stmt VARCHAR2(300);
      5     begin
      6        sql_stmt := 'SELECT * FROM emp WHERE deptno = 20';
      7        OPEN rst FOR sql_stmt;
      8     end;
      9  end test;
    10  /
    Package body created.
    SQL> var tcur refcursor
    SQL> exec test.sp_countries(:tcur);
    PL/SQL procedure successfully completed.
    SQL> print tcur
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7566 JONES      MANAGER         7839 02-APR-81       2975                    20
          7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
          7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
    SQL>

  • HTTPS SharePoint site with HTTPS Provider hosted app - The remote certificate is invalid according to the validation procedure

    We have SharePoint 2013 site configured with SSL and we have developed a provider hosted app which interacts with SharePoint list.
    If we try accessing the Provider hosted app from the SharePoint site with HTTP [http://mysharepointsite.com/] there are no any errors thrown.
    But whenever the same Provider hosted app is tried accessing from the same SharePoint site using https address
    [https://mysharepointsite.com/] we are getting below error:
    The remote certificate is invalid according to the validation procedure.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    Exception Details: System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
    Source Error:
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
    Stack Trace:
    [AuthenticationException: The remote certificate is invalid according to the validation procedure.]
    System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) +2983172
    System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +473
    System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +86
    System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +262
    System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +473
    System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +86
    System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +262
    System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +473
    System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +86
    System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +262
    System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +473
    System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) +8530566
    System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) +230
    System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) +645
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) +9
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) +87
    System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) +1467
    System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) +84
    System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) +22
    System.Net.ConnectStream.WriteHeaders(Boolean async) +761
    [WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.]
    System.Net.HttpWebRequest.GetResponse() +8534156
    Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute() +58
    Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) +975
    ProviderHostedHTTPSWeb.Default.Page_Load(Object sender, EventArgs e) +348
    System.Web.UI.Control.LoadRecursive() +71
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178
    We have already added the certificate used for the SharePoint site and the provider hosted app in the SharePoint central admin trusts.
    Any idea's how can I resolve this issue?

    Hi,
    According to your post, my understanding is that you failed to access provider host app using https.
    The reason for this is that SharePoint implements its own certificate validation policy to override .NET certificate validation.
    Fix is to setup a trust between SharePoint and the server requiring certificate validation.
    For more information, you can refer to:
    http://blogs.technet.com/b/sharepointdevelopersupport/archive/2013/06/13/could-not-establish-trust-relationship-for-ssl-tls-secure-channel.aspx
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • How do I pass the exact datetime parameter in a procedure.

    How do I pass the exact datetime parameter in a procedure.
    Hi All,
    I have a datetime problem which is driving me crazy.
    I need pass a datetime field as a parameter in an oracle procedure exactly as below with timestamp.
    Example: '6/01/2005 5:25:24 AM'
    SQL > exec myprod(‘value1’,’value2’,’value3’, to_date('6/01/2005 5:25:24 AM','dd-mm-yyyy hh24:mi:ss'));
    I get an error “INVALID MONTH”
    Next Changed to_date to to_char
    SQL > exec myprod(‘value1’,’value2’,’value3’, to_char('6/01/2005 5:25:24 AM','dd-mm-yyyy hh24:mi:ss'));
    I get a different error, “INVALID NUMBER”
    Next pass the datetime as it is.
    SQL > exec myprod(‘value1’,’value2’,’value3’, '6/01/2005 5:25:24 AM');
    I get an error “INVALID MONTH”
    Here is the my procedure.
    CREATE OR REPLACE PROCEDURE myprod (
    p_value1 varchar2,
    p_value2 varchar2,
    p_value3 varchar2 ,
    p_value4 date )
    IS
    filehandler UTL_FILE.FILE_TYPE;
    va_currentdate DATE;
    BEGIN
    SELECT sysdate
         INTO va_currentdate
    FROM dual;
    END;
    Do you know any solutions for this problem.
    Thanks

    What is your NLS_DATE_FORMAT value?
    There seem to be some implicit data conversions in your arguments.
    SQL> select parameter,value from nls_session_parameters where parameter like '%DATE%';
    PARAMETER                                                    VALUE
    NLS_DATE_FORMAT                                              YYYY-MM-DD HH24:MI:SS
    NLS_DATE_LANGUAGE                                            AMERICAN
    SQL> select to_date('6/01/2005 5:25:24 AM','dd-mm-yyyy hh24:mi:ss') from dual;
    select to_date('6/01/2005 5:25:24 AM','dd-mm-yyyy hh24:mi:ss') from dual
    ERROR at line 1:
    ORA-01830: date format picture ends before converting entire input string
    SQL> select to_date('6/01/2005 5:25:24 AM','dd-mm-yyyy hh:mi:ss am') from dual;
    TO_DATE('6/01/20055
    2005-01-06 05:25:24

  • Reporting Server Web Service- (FileShare) CreateSubscription: The value of parameter 'ExtensionSettings' is not valid

    I've tried to create a subscription by Web Service api calling the method CreateSubscription and I've an error: 
    > The value of parameter 'ExtensionSettings' is not valid. --->
    > Microsoft.ReportingServices.Diagnostics.Utilities.InvalidParameterException:
    > The value of parameter 'ExtensionSettings' is not valid.
     Below is my code:
    ReportingService2010 m_RptManager = new ReportingService2010();     m_RptManager.Url = "<path>/ReportService2010.asmx";     m_RptManager.Credentials = GetCredential();     string filename = Path.GetFileName(m_FileName);     string path = Path.GetDirectoryName(m_FileName);     ParameterValue[] extensionParams = new ParameterValue[7];     for (int i = 0; i < extensionParams.Length; i++)              extensionParams[i] = new ParameterValue();     extensionParams[0].Name = "FILENAME";     extensionParams[0].Value = filename;     extensionParams[1].Name = "FILEEXTN";     extensionParams[1].Value = "False";     extensionParams[2].Name = "PATH";     extensionParams[2].Value = path;     extensionParams[3].Name = "RENDER_FORMAT";     extensionParams[3].Value = m_Format;     extensionParams[4].Name = "WRITEMODE";     extensionParams[4].Value = "Overwrite";     extensionParams[5].Name = "USERNAME";     extensionParams[5].Value = m_UserName;     extensionParams[6].Name = "PASSWORD";     extensionParams[6].Value = m_Password;     ExtensionSettings extensionSettings = new ExtensionSettings();     extensionSettings.Extension = "Report Server FileShare";     extensionSettings.ParameterValues = extensionParams;     MinuteRecurrence pattern = new MinuteRecurrence();     pattern.MinutesInterval = 1;     ScheduleDefinition schedule = new ScheduleDefinition();     schedule.StartDateTime = DateTime.Now;     schedule.EndDateSpecified = false;     schedule.Item = pattern;     XmlSerializer serializer = new XmlSerializer(typeof(ScheduleDefinition));     string dateMatch;     using (StringWriter sw = new StringWriter())            {                serializer.Serialize(sw, schedule);                dateMatch = sw.ToString();            }     string reportPath = "MyReport";     string eventType = "TimedSubscription";     string description = "description";     m_RptManager.CreateSubscription(reportPath, extensionSettings, description, eventType, matchData, GetReportParameters(reportPath));
    Where have I wrong? 

    Thank for reply, I checked my parameter and I seem that (maybe) is  ok below is my parameters, do you see anything of wrong?
    <?xml version="1.0" encoding="utf-16"?>
    <ExtensionSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Extension xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer">Report Server FileShare</Extension>
    <ParameterValues xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/03/01/ReportServer">
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">FILENAME</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">pippo.xls</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">FILEEXTN</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">False</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">PATH</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">\\10.4.44.253\D$\Data Applications\DBP\Output\DOMAIN\User\14</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">RENDER_FORMAT</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">EXCEL</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">WRITEMODE</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">Overwrite</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">USERNAME</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">domain\user</Value>
    </ParameterValue>
    <ParameterValue>
    <Name xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">PASSWORD</Name>
    <Value xmlns="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">xxxxxx</Value>
    </ParameterValue>
    </ParameterValues>
    </ExtensionSettings>
     

  • Is it possible to pass TABLE as the output parameter in stored procedure

    Hey Experts,
      Is it possible to pass TABLE as the output parameter in stored procedure.
    eg
    create procedure spGetData
    @tableName as TABLE(intValue INT NOT NUL)
    as 

    You can use OPENQUERY or OPENROWSET, as mentioned above, to make stored procedure results table like. There are
    some limitations with these methods:
    http://technet.microsoft.com/en-us/library/ms188427.aspx
    In OPENQUERY this-sql-server-instance can be used instead of a linked server name. It requires setting data accces server option:
    exec sp_serveroption @server = 'PRODSVR\SQL2012'
    ,@optname = 'DATA ACCESS'
    ,@optvalue = 'TRUE'
    LINK: http://www.sqlusa.com/bestpractices/select-into/
    Kalman Toth Database & OLAP Architect
    SELECT Video Tutorials 4 Hours
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

  • What should be the procedure for  export parameter in CATT

    Hello Everybody,
    I am working with CATT, and the transactions are <b>ME21N</b> and <b>MIGO</b>.
    when i am executing the transaction <b>ME21N</b> i will get the <b>Pur Ord No</b>in the message, and i would like to export <b>Pur Ord No</b> to the transaction <b>MIGO</b> as thr is one field named Purch.ord no in Migo.
    what should be the Procedure for exporting a parameter?
    Thanks,
    Regards Afroz

    Hello Afroz,
    If you are using eCATT then following is the procedure of capturing messages in the two recording methods - TCD & SAPGUI.
    => TCD Recording Mode:
    In TCD recording mode, after dobleclicking on Interface name from the TCD command in the editor on left side, just before the MSG folder DYNPRO folder will appear on right side.
    -This DYNRPO folder contains the screen sequences contain the screen occurred during recording time. The last Dynpro of this folder contains the messages occurred during recording.
    -Select this last folder & click on Simulate Screen icon of the same Interface editor. It will redirect to the screen where the message values exist. There select the Purchase Order Number and click on Read Field Value icon. Give the name of Export Variable.
    The export variable will contain the value of the purchase order number, which can be passed to MIGO.
    => SAPGUI Recording Mode:
    In the SAPGUI recording mode, the screen on which the message appeared will be used to capture the variable name, which is Purchase Order Number in this case.
    If the Purchase Order Number is second variable of the message displayed(e.g. Purchase Number 2122323 Is Created)
    then use the following code -
    e.g.
    MESSAGE ( MSG_1 ).
    SAPGUI ( ME21N_4001_STEP_5 ).
    ENDMESSAGE ( E_MSG_1 ).
    Assing the value from the message to the export
    parameter
    P_EC_PurOrdNo = E_MSG_1-[1]-MSGV2.
    There are total four MSGV1-MSGV4 variables. Dobule click on MSG_1 of the MESSAGE statement above. Putting the value in the export variable from the right message variable will give the purchase order number.This can be passed as MIGO.
    Regards

  • PASSING A VARRAY as parameter in a procedure and returning the same VARRAY

    Hi,
    I am passing a varray as IN parameter to a procedure. I want to retreive the same VARRAY from the procedure.
    DECLARE
       TYPE str_array IS VARRAY (4) OF VARCHAR2 (50);
       v_array           str_array;  
       PROCEDURE process_array (
          v_str_array             str_array
       AS
       BEGIN
          FOR i IN v_str_array.FIRST .. v_str_array.LAST
          LOOP
             DBMS_OUTPUT.put_line ('Hello ' || v_str_array (i));
          END LOOP;
       END;
    BEGIN
       v_array    := str_array ('John', 'Paul', 'Ringo', 'George');
       process_array (v_array);
       -- can also pass unbound Str_Array
       --process_array (str_array ('John', 'Paul', 'Ringo', 'George'));
    --   DBMS_OUTPUT.put_line ('Hello ' || v_str_out_array (i));
    END;I want to change this procedure so that i will retreive the same as VARRAY out from the procedure.
    Can anyone help me on the same

       PROCEDURE process_array (
          v_str_array             IN OUT str_array
       )If your varray is large then you can try:
       PROCEDURE process_array (
          v_str_array             IN OUT NOCOPY str_array
       )but you should learn about possible side-effects if there is an error while executing the procedure. In short words: if you don't use NOCOPY and an error occurs during execution of process_array procedure then your varray is not changed - all chages to the value of your varray are 'rolled back'. If you use NOCOPY then it depends...

  • Error in InfoView "The Parameter Value is not Valid"

    Hello,
    I have developed a Crystal Report in CR2008 and uploaded in the InfoView. Now when i run the report via scheduling or load the report with the data and try to change the parameter (editable set in CR) from the drop down list and hit apply i get an error dialogue box "The parameter value is not valid" and message says "null".
    Also another issue is that i cannot execute the report directly in InfoVIew, i have to schedule it to run the report. Report is connected to the SAP InfoSet.
    Any input would be much appreciated.
    Thanks.

    We have rebuild new servers for InfoVIew and it just works fine. Both the problem solved.

Maybe you are looking for