Store procedure help

is it possible to write store procedure for inserting records and multiplying them
description qt rate Amount
drop procedure a1;
create or replace procedure a1
a_description in varchar2,
a_qt in number,
a_rate in number,
a_amount in number)
as
begin
insert into employee_record values (a_description,a_qt,a_rate,a_qt * a_rate);
end;
is it possible that column amount calculates the amount itself
when i try to execute ( 'Hard Drive', 4, 100)
it gives me an error message .
wrong number or types of arguments in call to 'INSERT_a1'
when i try to run it with ('Hard Drive',4,100, 5) it inserts values and also updates column with correct amount which is 400 .
it would be kind of you if you could show me the a better way to write this store procedure or where i should makes changes.
so that my amount column calculates the total itself
thanks

Hi,
Someoneelse is right: storing columns that depend entirely on other columns is usually a bad idea. Compute the amount in queries, as needed, or create a view that computes amount.
If you really must store it in the table, then you can use a trigger, like this:
CREATE OR REPLACE TRIGGER employee_record_biu
BEFORE INSERT OR UPDATE OF qt, rate, amount
                             ON employee_record
FOR EACH ROW
BEGIN
    :NEW.amount := :NEW.qt * :NEW.rate;
END;
/This will automatically run whenever you issue an INSERT or UPDATE statement that references the columns involved. If that statement provides a value for amount, that value will be ignored. Amount will always be calculated from qt and rate.
Starting in Oracel 11, you can create a virtual column, which will probably be better than a trigger.
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7002.htm#sthref7273

Similar Messages

  • Store procedure help please

    Oracle Stored procedure query..
    I have 1 table with below schema.
    ID empID clsID Year Cuser CDatetime
    Sample Data:
    ID     EMPID     ClsID     Year     Cuser     CDateTime
    1     100     2     2000     John     1/1/2000
    2     100     3     2000     John     1/1/2000
    3     100     4     2000     John     1/1/2000
    4     100     5     2000     John     1/1/2000
    5     100     6     2000     John     1/1/2000
    6     100     7     2000     John     1/1/2000
    7     100     8     2001     John     1/1/2000
    8     100     2     2001     John     1/1/2000
    9     100     3     2001     John     1/1/2000
    10     101     9     2000     John     1/1/2000
    I need to write a stored procedure which will copy the data from Year 2000 to year 2001. So I can reuse data from yr 2000 to yr 2001.
    Conditions:
    1. Copy data from 2000 to 2001.
    2. If 2001 already has some data, leave those data alone.
    3. No duplicate data from 2000 to 2001.
    Using cursor variable what is the stored procedure will do the same. I need the stored procedure code, Thanks in advance.

    here are some basic query. i'll leave to you the creation of procedure so that you have something work on.
      select [sequence id e.g. sequence_id.nextval],
             empid,
             cisid,
             year,
             cuser,
             cdatetime
        from [table name]
       where (empod,cisid,year,cuser,cdatetime) not in (select empod,cisid,year,cuser,cdatetime
                                                           from table)

  • Help: How to open wrapped store procedure on oracle database

    Dear Gurus,
    how to open the wrapped store procedure on oracle database?
    anyone can help me...?
    reply me soon
    take care

    Any other way so that I can see the flow of data that written on wrapped store procedure?You need to see the source code which has keeped outside of database. Read a wrapped code is not common for humans...
    reply me asap If you want an asap answer, raise a SR for oracle support, not through a forum which is based on volunteers.
    Nicolas.

  • Using store procedures with SQLJ - please help!

    I have two questions:
    1.I wrote simple test appllication that uses SQLJ to run store
    procedures from SQL package. It compiles and work fine from
    JDeveloper 3 if I use java version JDK1.2.2_JDeveloper.
    It compiles OK in regular JDK1.2.2 but raise the following
    exception when running:
    profile
    com.itrade.trserver.truser.dbqueries.ItrHistorian_SJProfile0 not
    found: java.io.InvalidClassException: [Ljava.lang.Object;;
    Serializable is incompatible with Externalizable
    Does it mean that I have to use JDeveloper JDK?
    2.When I give other then default package for *.sqlj file the
    *.sqlj file is added to project but I cannot see it in specified
    package (the *.sqlj file is created in the its directory).
    After I compile the project the I can see *.java file in the
    specified package, but compiler gives errors about redefined
    symbols. If I remove *.sqlj file from the project it compiles OK.
    What I am doing wrong?
    Yakov Becker
    null                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Thank you for the response.
    I don't create jar file. I run it from JDeveloper environment.
    What do you mean by "I made sure to also copy over the
    : the .ser file"? What purpose of the *.ser file in this case?
    Yakov
    JDeveloper Team (guest) wrote:
    : I have come across this error before..
    : I'm assuming that your jar file is in the classpath as
    : specified in the Jserv configuration?
    : When I had the error, I made sure to also copy over the
    : the .ser file.
    : In my case, I happened to have both my class files and
    : the .ser file outside of a jar file and it worked..
    : Hope this helps!
    : Yakov Becker (guest) wrote:
    : : I have two questions:
    : : 1.I wrote simple test appllication that uses SQLJ to run
    store
    : : procedures from SQL package. It compiles and work fine from
    : : JDeveloper 3 if I use java version JDK1.2.2_JDeveloper.
    : : It compiles OK in regular JDK1.2.2 but raise the following
    : : exception when running:
    : : profile
    : : com.itrade.trserver.truser.dbqueries.ItrHistorian_SJProfile0
    : not
    : : found: java.io.InvalidClassException: [Ljava.lang.Object;;
    : : Serializable is incompatible with Externalizable
    : : Does it mean that I have to use JDeveloper JDK?
    : : 2.When I give other then default package for *.sqlj file the
    : : *.sqlj file is added to project but I cannot see it in
    : specified
    : : package (the *.sqlj file is created in the its directory).
    : : After I compile the project the I can see *.java file in the
    : : specified package, but compiler gives errors about redefined
    : : symbols. If I remove *.sqlj file from the project it
    compiles
    : OK.
    : : What I am doing wrong?
    : : Yakov Becker
    null                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Using Store Procedures with BC4J - Help

    I need some help, could you explain me how to call some store procedures on an Entity Object with a source code.
    I really apreciate your help.
    null

    You can override the doDML method.
    Then I get the connection using the getDBTransaction() method.
    After that you can include your code in order to invoke the stored procedure.
    Example:
    public void doDML(int operation, TransactionEvent e) {
    CallableStatement stmt = null;
    if (operation == DML_INSERT)
    // Prepare JDBC CallableStatement with the Stored Procedure Call
    String plStr = "XXXXXX";
    stmt = getDBTransaction().createCallableStatement(plStr , 1);
    Other way:
    Create a method in the view objet and make it a client method.
    You can get the appmodule and the DBTransaction in this method.
    In both cases you are using the same connection.

  • Help On create Store Procedure

    I need to Create a Store Procedure under a different from the once I am connected.
    Thanks

    If you have the DB rights to do it, use
    create procedure owner.proc_name as ...

  • Need help on processing XML doc using Java store procedure

    I am currently working on project to read, parse XML document and store data in XML document into database columns. I use JAVA API-OracleXMLSave in my java store procedure to do it, which use URL of XML doc to read, parse doc and store the data to database columns. My java store procedure works fine when XML doc is saved in server, but got "ORA-29532: Java call terminated by uncaught Java exception:
    oracle.xml.sql.OracleXMLSQLException: No such file or directory" if XML doc is in client's PC instead of in server. I think the problem comes from the URL that created using OracleXMLSave
    --createURL(fileName) based on the filename. what will be the filename if XML document located in Client PC like C:\myprojects\xmldoc.xml?
    Thank you in advance if anyone can give some hints.

    I am currently working on project to read, parse XML document and store data in XML document into database columns. I use JAVA API-OracleXMLSave in my java store procedure to do it, which use URL of XML doc to read, parse doc and store the data to database columns. My java store procedure works fine when XML doc is saved in server, but got "ORA-29532: Java call terminated by uncaught Java exception:
    oracle.xml.sql.OracleXMLSQLException: No such file or directory" if XML doc is in client's PC instead of in server. I think the problem comes from the URL that created using OracleXMLSave
    --createURL(fileName) based on the filename. what will be the filename if XML document located in Client PC like C:\myprojects\xmldoc.xml?
    Thank you in advance if anyone can give some hints.

  • UNABLE TO EXECUTE THE CMDSQL SCRIPT IN A STORE PROCEDURE.

    I am trying to call a .sql file from sql cmd mode.
    The requirement is to pass the .sql file as parameter value to the cmd script which I have able to achieve,here is the code which is working fine .
    declare @x sysname
    set @x = 'C:\Users\testuser\Desktop\testing.sql'
    :OUT $(TEMP)\GetServerName1.sql
    PRINT ':SETVAR FilePath'+ ' ' + @x
    GO
    :OUT stdout
    :r $(TEMP)\GetServerName1.sql
    GO
    :r $(FilePath)
    But when I try to wrap this code in store procedure it is giving the message fatal error but when I run it without wrapping it in store proc it is doing its job with no error . When I looked into the store proc I found the code as
    ALTER proc [dbo].[testing]
    as
    declare @x sysname
    set @x = 'C:\Users\testuser\Desktop\testing.sql'
    PRINT ':SETVAR FilePath'+ ' ' + @x
    It seems like the sqlcmd code disappears automatically. I have no clue why it is happening. 
    Can anyone help in letting me knw how to wrap the above code in store proc.
    Thanks Saurav 

    It is important to keep in mind that you have two entities in play here. One client and one server. The lines that start with a colon never sent to SQL Server, nor are the lines which reads "go". They are intercepted client-side. For instance :r
    instructs SSMS to read a local file and out: redirects the output. And "go" breaks up the code in batches.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Select all values from Rule in Store Procedure

    Hi
    I have a rule like this
    CREATE RULE [dbo].[Rle_Currency_Lst]
    AS
    @List IN
    ('PKR','USD')
    GO
    Now i want to make simple "Currency List" report for which i need to select values from above rule in Store Procedure which i will use in SSRS to fill my report.
    Please help
    Zubair Afridi | Please mark as answered or vote helpful if this post help resolved your issue. Thanks!

    One way to get the values.
    declare @definition nvarchar(max);
    select @definition = m.definition
    from sys.objects o
    inner join sys.sql_modules m on o.object_id = m.object_id
    where schema_name(o.schema_id) = 'dbo' and o.name = 'Rle_Currency_Lst';
    set @definition = SUBSTRING(@definition, CHARINDEX('''', @definition), LEN(@definition));
    set @definition = LEFT(@definition, CHARINDEX(')', @definition) - 1);
    declare @myXML AS XML;
    set @myXML = N'<H><r>' + REPLACE(SUBSTRING(@definition, CHARINDEX('''', @definition), LEN(@definition)), ',', '</r><r>') + '</r></H>'
    declare @result table(myvalues nvarchar(100));
    insert @result(myvalues)
    SELECT Vals.id.value('.', 'NVARCHAR(100)') AS val
    FROM @myXML.nodes('/H/r') AS Vals(id)
    update @result set myvalues = REPLACE(myvalues, '''', '');
    select * from @result;
    Note that rules is a deprecated feature and will be removed in a future version of SQL Server.  The replacement for rules is CHECK CONSTRAINTS.  You may well want to consider a plan to migrate your current rules to check constraints.
    Tom

  • How to build a report in web Intelligence using Store procedure under Microsoft SQL Server 2000

    Post Author: ltkin
    CA Forum: WebIntelligence Reporting
    Hi,
    How to build a report in web Intelligence using Store procedure under Microsoft SQL Server 2000 ?
    Regards,

    Hi ltkin,
    Unfortunately, it is not possible in Xir2 to create Webi reports from stored procedures.
    Webi reports can only be created from Universe. So in Business Objects XIR3 we can create a special universe that enables Web Intelligence user's to access stored procedures residing in the database. This is the only way that Web Intelligence user's can access stored procedures.
    Please let me know if the above information helps.
    Regards,
    Pavan

  • How can i pass NULL value in Store Procedure?

    Hi guys,
    I am calling one store procedure from MS SQL Server 200, i had create the follow layout:
    But i need pass to MSQL SEVER the CPF = NULL, when i execute the procedre the CPF send empty value (not null).
    I already changed Communication Channel parammeter "Interpretation of Empty String Values" to "Null Value" value.
    But the interface always send empty string instead of null.
    How can anybody help me, please?
    Edited by: João Noberto dos Santos Junior on Jun 24, 2009 5:00 PM

    Hi,
    To achieve this through "Interpretation of Empty String Value" in the cc, you will have to implement a patch which is sent to you by SAP when an OSS is raised. By default its not available, i mean you can configure it but it will actually not work.
    As a temporary solution you can map your element with a constant/mapwithdefault field with value mentioned as NULL.
    Regards,
    Anshul

  • Unable to run Store Procedure based deski report in Infoview

    Hi All,
    I have a Deski report which is created using Store Procedure. I am able to run report in Full Client Deski. But I am unable to run / schedule same report thorough infoview.
    More details about report
    - Report uses 3 store procedures. When I ran report in infovew I get error message as "SP2 Dataprovider did not refresh properly".  -- SP2 is Dataprovider name.
    - Same report I am able to run in Dev environment. After migration to Model, report fails to run in model infoview.
    - I am able to Run report only for 1st. When I refresh and run with same parameter report shows error.
    Any input will be great help.
    Thanks,
    NV

    Hi,
    Could you please test the following solutions to resolve the issue.
    Solution1:
    Test the issue by inserting the following parameter in .SBO file.
    <Parameter Name="Force SQLExecute">Always</Parameter> .
    Solution2
    Just put SET NOCOUNT OFF in the end of the stored procedure SQL.
    If the above doesnu2019t works then please try the following solution.
    Solution3
    Make the new connection from the scratch using ODBC connection and test the issue.
    I hope this will help you.
    Regards,
    Sarbhjeet Kaur

  • Error while executing store procedure

    we are using JSQLConnect jdbc driver 3.0 verson.
    When we trued to excute store procedures its giving error like
    com.jnetdirect.jsql.w: Stored procedures called with static parameters cannot return output parameter values, please use CallableStatement.setXXX() to set the values of all input parameters.
    we are using SQLServer2000.
    Could anybody tell me why this is error is coming and how to solve this.
    Thanks
    Hemanth

    Obviously it doesn't like the stored procedure. If you posted the signature for that it might help.
    You are using a CallableStatement right?

  • Error when run crystal report with store procedure in JSP

    I try to run report which is developed by crystal report XI and store procedure (SQL 2005) with JSP.
    But it occurs error that is "com.crystaldecisions.reports.reportengineinterface.JPEReportSource - failed to process getPage request: No results were returned by the query."
    How can I do for solving this problem? Pls, help me !!!!!
    (In other report which is not used store procedure I can run fine.)
    Message was edited by:
    Bonds_Identity

    What version of CR are you using?
    What CR updates are you using?
    See sample apps here:
    https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples
    in particular check out vbnet_win_pass_dataset_main_sub.zip
    The [Crystal Reports for Visual Studio 2005 Walkthroughs|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23] will also be good to look at.
    Ludek
    Follow us on Twitter
    http://twitter.com/SAPCRNetSup

  • Error message when issuing a COMMIT in a store procedure

    Hello experts,
    Please help.
    I have a problem where i cannot specify a COMMIT in a store
    procedure. I have the following error message:
    =================================================================
    00034, 00000, "cannot %s in current PL/SQL session"
    // *Cause:  An attempt was made to issue a commit or rollback
    from a PL/SQL
    // object (procedure, function, package) in a session
    which has this
    // disabled (by 'alter session disable commit in
    procedure')
    // *Action: enable commits from PL/SQL in this session, or don't
    attempt
    // to use commit or rollback in PL/SQL when they are
    disabled
    // in the current session.
    =================================================================
    Thanks very much for a reply
    Kind regards
    Yogeeraj

    The solution is to issue the statement
    alter session enable commit in procedure;
    However, I'd think carefully about doing this. Procedures are
    often called as part of a wider transaction. If the procedure
    issues a commit ALL the preceding work is also commited. If
    there is something subsequent in the transaction that fails and
    issues a rollback, it will onlt rollback the work done after the
    procedure. This may lead to your database being in an
    inconsistent state.
    rgds, APC

Maybe you are looking for