Problem of calling external procedures writen on C and use mysqlclient

i have a problem at use to external library written on С++ and use mysqlclient under Oracle
ORA-06521: PL/SQL: Error mapping function
ORA-06522: /lib/libabrogation.so: undefined symbol: abrogation
ORA-06512: at "WORK.ABROGATION", line 1
ORA-06512: at line 9
Start procedure:
DECLARE
PATH VARCHAR2(200);
MESSAGE VARCHAR2(200);
BEGIN
PATH := '/tmp/test.ttt';
MESSAGE := 'hhheh';
WORK.ABROGATION ( PATH, MESSAGE );
END;
CREATE OR REPLACE LIBRARY WORK.LIBABROGATION
IS '/lib/libabrogation.so'
CREATE OR REPLACE PROCEDURE abrogation
(path VARCHAR2
,message VARCHAR2) AS EXTERNAL
LIBRARY libabrogation
NAME "abrogation"
PARAMETERS
(path STRING
,message STRING);
source of libabrogation.c
#include <stdio.h>
#include <my_global.h>
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
void abrogation(char path, char message)
// Declare a FILE variable.
FILE *file_name;
// Open the File.
file_name = fopen(path,"w");
fprintf(file_name,"start0\n");
MYSQL conn;
if(!mysql_init(&conn))
fprintf(stderr, "Error: can't create MySQL-descriptor\n");
exit(1);
if(!mysql_real_connect(&conn,
"xxx.xxx.xxx.xxx",
"xxx",
"xxx",
NULL,
0,
NULL,
0))
fprintf(file_name, "Error: %s\n", mysql_error(&conn));
exit(1);
if(mysql_query(&conn, "SET NAMES 'cp1251'") != 0)
fprintf(file_name, "Error: can't set character set\n");
exit(1);
if(mysql_query(&conn, "USE `test`") != 0)
fprintf(file_name, "Error: %s\n", mysql_error(&conn));
exit(1);
if(mysql_query(&conn,
"INSERT INTO orains VALUES (NULL,12)") != 0)
fprintf(file_name, "Error: can't execute INSERT-query\n");
exit(1);
fprintf(file_name,"%d\n",mysql_insert_id(&conn));
mysql_close(&conn);
// Close the file.
fclose(file_name);
compile:
gcc -fPIC -c -I/usr/include/mysql libabrogation.c
gcc -fPIC -shared libabrogation.o /usr/lib/mysql/libmysqlclient.a /usr/lib/libz.a -lssl -Wl,-h,libabrogation.so -o libabrogation.so
library is corrected and testing:
source main.cpp
#include <stdio.h>
#include <dlfcn.h>
#include <stdlib.h>
#include "libabrogation.h"
int main(int argc, char **argv)
void *lib_handle;
double (*fn)(char path, char message);
char *path="/tmp/test.ttt";
char *message="hhheh";
char *error;
lib_handle = dlopen("/lib/libabrogation.so", RTLD_LAZY);
if (!lib_handle)
fprintf(stderr, "%s\n", dlerror());
exit(1);
fn = dlsym(lib_handle, "abrogation");
if ((error = dlerror()) != NULL)
fprintf(stderr, "%s\n", error);
exit(1);
(*fn)(path,message);
dlclose(lib_handle);
return 0;
compile: gcc -rdynamic main.c -o main -ldl
if change code of abrogation.cpp and compile, all successfully work under Oracle:
#include <stdio.h>
void abrogation(char path, char message)
// Declare a FILE variable.
FILE *file_name;
// Open the File.
file_name = fopen(path,"w");
fprintf(file_name,"start0\n");
// Close the file.
fclose(file_name);
what's the problem?

You can create the Object/types in Oracle and use OTT utility to create persistency related code.
How ever I recommend to use similar table rather than using Objects . Since objects are costly in RDBMS.

Similar Messages

  • Problem in Calling External Procedure

    Hello,
    I am trying to call external procedure written in C from PL/SQL.
    Here are the codes :
    For external procedure:
    #include<stdio.h>
    void extproc_fn ( void )
    FILE * file_handle;
    if (( file_handle = fopen ( "/root/cprogs/extproc.out", "a" )) != NULL )
    fwrite ( "External Procedure Testing", 26, 1, file_handle );
    fclose ( file_handle );
    I have created library as :
    create or replace library extproc_lib as '/root/cprogs/extproc.so';
    And the procedure :
    create or replace procedure extproc_proc as
    external
    name "extproc_fn"
    library extproc_lib
    language c;
    My listener and tnsname is configured correctly.
    But when I try to connect to Oracle by that tnsname, extproc program core dumps under $ORACLE_HOME/network/log directory. Under WinNT, it creates a Dr. Watson error.
    Any idea what might have gone wrong.
    Thanks in advance.
    Soumen Ghosh

    hi there,
    everything u did is correct as far as i recollect about external procedures ,the only thing that i suppose is missing is that u forgot to grant permissions on the library to the user...pls check this once i hope this works...
    bye
    Atul

  • Calling stored procedure from page process and PLS-00049 error?

    Good morning guys!
    I'm dealing with several problems this morning! The one that I need to deal with first is the following.
    I created the page process (see below: 1st code) in order to validate if all records where LNG_GEBIET matches have the status 3 or 4. If that is the case I want to call the procedure "set_status_arbeit_zu_gebiet". If amountrs and countstat do not match, then nothing is supposed to be done.
    The problem lies within the stored procedure itself. I receive a PLS-00049 bind variable error for :new.LNG_GEBIET.
    Can you please tell me what I forgot to declare in code 2 below???
    Thank you guys!
    The page process:
    Declare
      amountrs    number;
      countstat   number;
    begin
    SELECT COUNT(*) INTO amountrs FROM TBL_PUNKTDATEN where LNG_GEBIET = :P4_CNT_GEBIET;
    SELECT COUNT(*) INTO countstat FROM TBL_PUNKTDATEN where LNG_GEBIET = :P4_CNT_GEBIET and INT_STATUS = 3 or LNG_GEBIET = :P4_CNT_GEBIET and INT_STATUS = 4;
        IF amountrs = countstat THEN
         set_status_arbeit_zu_gebiet;
        ELSE
         dbms_output.put('nothing');
        END IF ;
    end;Code 2 with the true problem!
    CREATE OR REPLACE PROCEDURE set_status_arbeit_zu_gebiet
    IS
        cursor c2 is select LNG_GEBIET from TBL_ARBEIT_ZU_GEBIET where PNUM = 1114 and LNG_GEBIET=:new.LNG_GEBIET;
        v_c2  c2%ROWTYPE;
    BEGIN
       open c2;
    fetch c2 into v_c2;
    if c2%notfound then
            INSERT INTO TBL_ARBEIT_ZU_GEBIET
            LNG_GEBIET,
              LNG_ARBEITSSCHRITT,
              PNUM,
              INT_BEARBEITER,
              DATE_DATUM,
              GEPL_DATUM
            VALUES
            (:new.LNG_GEBIET,
             52,
             1114,
             895,
             sysdate,
             to_date('01.01.1990', 'DD.MM.YYYY')
            commit;
            close c2;
    END set_status_arbeit_zu_gebiet;One more question: Is it possible to integrate the first validation that calls my stored procedure into code 2?
    Thanks for you time!
    Sebastian

    The error is in following statement:
    INSERT INTO TBL_ARBEIT_ZU_GEBIET ( ... ) VALUES ( :new.LNG_GEBIET, ... );
    As the statement is part of a procedure and not trigger so it is not able to bind this variable with any value.
    As a resolution, pass this value to the procedure from the process and use it in the insert statement.
    The process will have following IF statement:_
    IF amountrs = countstat THEN
    set_status_arbeit_zu_gebiet *(:P4_CNT_GEBIET)*;
    ELSE
    dbms_output.put('nothing');
    END IF ;
    and the procedure will be as follows:_
    CREATE OR REPLACE PROCEDURE set_status_arbeit_zu_gebiet *(p_lng_gebit varchar2)*
    IS
    cursor c2 is select LNG_GEBIET from TBL_ARBEIT_ZU_GEBIET where PNUM = 1114 and LNG_GEBIET= --:new.LNG_GEBIET-- p_lng_gebit ;
    v_c2 c2%ROWTYPE;
    BEGIN
    INSERT INTO TBL_ARBEIT_ZU_GEBIET ( ... )
    VALUES
    ( --:new.LNG_GEBIET--  p_lng_gebit, ... );
    END set_status_arbeit_zu_gebiet;

  • HELP!!! Problem of Calling external Web Service from a Java Stored Procedur

    1.I read the topic on http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html about Calling external Web Service from a Java Stored Procedur.
    2.After I import .jar to Oracle what is required by the topic,som error occued.
    Like: ORA-29521: javax/activation/ActivationDataFlavor class not found,
    ORA-29545: badly formed class.
    3.These is not enough .jar required on the topic? What can I do for ORA-29545: badly formed class?
    Thany you!

    Try this
    Re: HELP! Loading Java Classes into Oracle ERROR

  • Error calling external procedure on remote server

    Hello
    I have written an external procedure that runs correctly when it is on the same machine as the database from which I call it. (Windows XP Professional/Oracle 9.2)
    When I try to call the procedure from a database on another machine (also Windows XP Professiona l/ Oracle 9.2) I get ORA - 28756 "lost RPC connection to external procedure agent" or ORA - 28758 "protocol error during callback from an external procedure". Using filemon I can see that the DLL is never searched for or called. The problem seems to lie in the communication between the two machines. When I observe network traffic the machines communicate on port 1521 (the listener) and then switch to the port that the listener returns. Shortly after that the connection is terminated with the above error reported in the PL/SQL routine.
    The Oracle Administrator's Guide (9.2) states that "the agent must reside on the same computer as the application making the external procedure call." However there are several entries on the internet that show how to do what I am want to accomplish - I suspect I am making some small mistake.
    Any help would be greatly appreciated!
    Here is the listener on the machine with the DLL.
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = jacxp01)(PORT = 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\ora90)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=C:\easydist\easydist\Debug\easydist.dll;C:\easydist\easydist\Release\easydist.dll")
    Here is the TNSnames.ora on the remote database machine: (I have also tried the commented lines with no more success)
    # TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC1))
    #(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.121)(PORT = 1521))
    (CONNECT_DATA =
    #(SERVICE_NAME = PLSExtProc)
    (SID = PLSExtProc)
    )

    Hi Long Le Hoang,
    I am running a shell script fromSM69 which call psexec.
    shell script runs fine but SM69 execution goes on hold.
    Can you please help me how to terminate SM69 execution.
    Alpa

  • Db Adapter: problems by calling a procedure with type as parameter

    Hi,
    We using a db adapter in a bpel process.
    In that dapter we call a procedure with types as in and out parameter
    package.procedure(p_in IN in_t, p_rsult OUT result_t).
    When we calling the procedure, we don't call the procedure directly.
    We call that procedure in a schema who have the execute rigths for the package and the types.
    When we run the process we get the error message
    unable to convert the xsd element p_in whose user defined type is in_t
    cause: java.sql.SQLException: ora-01436 connect by loop in user data
    I am not shore if I draw the right conclusions.
    Is it rigth that bpel have a problem by using types as parameter when using two schematas? Isn't it a bug.
    For every help I was thankful.
    Thanks in advanced.
    Michael

    Hi,
    thanks for the hint. I have implemented a wrapper package and it's working well.
    Only one crux. The parameter of the called procedure are data types and not simple types.
    CREATE OR REPLACE TYPE pesa_db_return_t AS OBJECT
    (SUCCESS_MSG varchar2(255)
    ,FAULT_SQLCODE varchar2(255)
    ,FAULT_SQLMSG varchar2(255)
    Wrapper package...
    IS
    PROCEDURE prc_writeReOinDB (p_AuftragRechnungOnline IN pesa_data.pesa_tivu_reo_t
    ,p_result OUT pesa_data.pesa_db_return_t)
    IS
    BEGIN
    pkg_pesa_reo.prc_writeReOinDB (p_AuftragRechnungOnline => p_AuftragRechnungOnline
    ,p_result => p_result
    END prc_writeReOinDB;
    END pkg_pesa_wrapper;
    So I have to declare the parameter with the schema user in front of.
    Now, we have deployed thes sources on a second enviroment and get following error:
    <2008-04-22 15:01:25,749> <ERROR> <eweber.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.CallbackDeliveryMessage"; the exception is: Type class not found.
    Cannot find class for type "org.apache.xerces.dom.ElementNSImpl". Please check that the class is located in the classpath.
    You have a hint for me what I have to do?
    Thanks in advanced,
    Michael

  • Problem to call a procedure in Oracle

    Hi,
    I create a simple Oracle procedure like following
    CREATE OR REPLACE PROCEDURE util_session_insertion (in_user_id IN NUMBER, in_note IN VARCHAR2, v_next_id OUT NUMBER)
    IS
    BEGIN
    -- get next id
    SELECT session_id_seq.nextval INTO v_next_id FROM dual;
    -- insert into session table
    INSERT INTO sessions (session_id, user_id, notes, source_agency_id) VALUES (v_next_id, in_user_id, in_note);
    commit;
    EXCEPTION WHEN OTHERS THEN
    rollback;
    END;
    and I try to call the procedure as follows
    cstmt = conn.prepareCall("{call util_session_insertion(?, ?, ?)}");
    cstmt.setInt(1, Integer.parseInt(request.getParameter("user_id")));
    cstmt.setString(2, request.getParameter("notes"));
    cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
    cstmt.execute();
    v_session_id = cstmt.getInt(1);
    The record is inserted, but I always get the error message
    java.sql.SQLException: Invalid column index
    How to I fix this problem?
    Thanks,
    Grace

    cstmt.registerOutParameter( 3, java.sql.Types.INTEGER);
    cstmt.execute();
    v_session_id = cstmt.getInt( 1,);
    The record is inserted, but I always get the error
    message
    java.sql.SQLException: Invalid column index
    How to I fix this problem?The error message tells you exactly what is wrong.

  • Having problem with calling external javascript functions in LV

    Hi,
    I found this VI: http://lavag.org/topic/10304-discuss-calling-external-javascript/, which I believe can be really helpful for my work. The problem is I can't get it to run based on the following problem:
     - Apparently the "ScriptControl" cannot be loaded
    I am using LabView 8.6, and this vi has been produced in a 8.0 version. Do you think this is the problem? If not, what could cause this problem running this VI?
    Thanks,
    Diogo

    Hi,
    To start I am using this examplo from the google code page.
    <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <title>Google Maps JavaScript API Example</title>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=abcdefg&sensor=true_or_false"
                type="text/javascript"></script>
        <script type="text/javascript">
        function initialize() {
          if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(37.4419, -122.1419), 13);
            map.setUIToDefault();
        </script>
      </head>
      <body onload="initialize()" onunload="GUnload()">
        <div id="map_canvas" style="width: 500px; height: 300px"></div>
      </body>
    </html>  
    It loads a basic map, and is saved in a html file created for example in Notepad. Basically as I said the VI is very simple, see next image.
    But like I said, this strategy does not allow labview to interface dinamically with the javasscript code in the html file. Doing it this way, I would have to constantly update the code in the file with new coordinates and loading the map again. This causes the mentioned flickering problem that I also had with static maps.
    Diogo

  • Problem with Oracle external procedures and Microsoft Active Directory

    Hi,
    Our server was recently updated to use Microsoft Active Directory. However, we noticed that all external procedure calls keeps on failing with ORA-28575: unable to open RPC connection external procedure agent. Everything was working fine before we migrated to Active Directory which is why we can say that the listener is configured correctly.
    Any idea on how we can make extproc calls with Active Directory?
    thanks.

    Michael,
    Oracle Forms does support Single Sign-On (SSO). Take a look at Oracle Containers for J2EE Security Guide: OC4J Java Single Sing-On. Also take a look at the Oracle Forms 10g Sample Code and scroll to the SSO demo under the Forms Services Demo section. There are also, numerous other documents available via Google. ;-)
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Problem in calling oracle procedure from java

    Oracle procedure with the following parameters.
    CREATE OR REPLACE PROCEDURE CREDITED_TO_STORE_INSERT (P_CUST# IN NUMBER,
    P_INV_DATE IN DATE,
    P_MEMO# IN NUMBER,
    P_SESS_ID IN VARCHAR2 ) IS
    BEGIN
    /*.........Procedure Body with select and insert statements there no OUT or return variable/value......*/
    END;
    Now i am calling this procedure with the java code in java.
    public boolean execProcedure(String storeNo, String invoiceDate, String claimNo, String sessionID) throws SQLException {
         CallableStatement cstmt = null;
         java.sql.Date invicDate = this.StringToDate(invoiceDate);
         try
         cstmt = conn.prepareCall("{call WEBUSER.CREDITED_TO_STORE_INSERT(?,?,?,?,?,?)}");
         cstmt.setInt(1, Integer.parseInt(storeNo));
         cstmt.setDate(2, invicDate);
         cstmt.setInt(3, Integer.parseInt(claimNo));
         cstmt.setString(4, sessionID);
         cstmt.execute();
         catch (Exception e)
         System.out.println (e);
         } // catch (Exception e)
         finally
         try
         cstmt.close();
         catch (Exception ex)
         } // catch (Exception ex)
         } // finally
         return true;
    But it will return the following exception.
    [STDOUT] java.sql.SQLException: Missing IN or OUT parameter at index:: 5
    i don't know why :( please help me ...

    your procedure has 4 parameters but in the prepared statement you define 6 placeholders

  • Problem to call stored procedure with several IN pars and single REF Cursor

    Hi,
    Oracle 9.2.0.1
    Ole DB Provider I've got with ODP 9.2.0.4
    First I try to call packaged procedure with single
    REF CURSOR - it works fine(PROCEDURE getDep(dep OUT DEPART.refcur) IS ...).
    When I try to call procedure with additional IN parameter, I get an error ORA-01008: not all variables bound.
    Packaged procedure: PROCEDURE getDep(dep OUT DEPART.refcur, i1 IN number) IS .... and so on.
    Try to call from C#:
    cmd.CommandText = "{call depart.getDep(?)}";
    OleDbParameter par0 = cmd.CreateParameter();
    par0.Value = some value;
    par0.DbType = DbType.Int16;
    par0.OleDbType = OleDbType.Integer;
    par0.Direction = ParameterDirection.Input;
    OleDbDataAdapter da = new OleDbDataAdapter(cmd.CommandText,con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    Connection string:
    "Provider=OraOLEDB.Oracle;User Id=scott;Password=tiger;Data Source=ora92;OLEDB.NET=true;PLSQLRSet=true"
    Please, HELP !
    Thanks in advance,
    Vyacheslav

    Hi,
    Are you using OLEDB.NET driver (System.Data.Oledb) or ODP.NET driver (Oracle.DataAccess)?
    If you are using ODP.NET, remember that you need to bind the refcursor output variable also (besides the numbder)
    Arnold

  • Package: Difference between calling external procedures vs. internal

    I have a package which has a bunch of procedures. I have decided to move one of the procedures outside the package because there is a user that needs control over the SQL in it. I pass 2 dates into it so I don't think I can create a view. My question is this:
    What is the difference in syntax to call a procedure outside the package as opposed to one inside the package?

    I don't think I've ever been in the position of having a stand-alone procedure with the same name as a packaged procedure and needing to call the stand-alone one from within the package, but it is still possible:
    SQL> CREATE PROCEDURE p
      2  AS
      3  BEGIN
      4      DBMS_OUTPUT.PUT_LINE('This is the stand-alone procedure');
      5  END;
      6  /
    Procedure created.
    SQL> CREATE PACKAGE pkg
      2  AS
      3      PROCEDURE testit;
      4  END;
      5  /
    Package created.
    SQL> CREATE PACKAGE BODY pkg
      2  AS
      3      PROCEDURE p
      4      IS
      5      BEGIN
      6          DBMS_OUTPUT.PUT_LINE('This is a procedure in package PKG');
      7      END;
      8 
      9      PROCEDURE testit  
    10      IS
    11      BEGIN
    12          william.p;
    13      END;
    14  END;
    15  /
    Package body created.
    SQL> exec pkg.testit;
    This is the stand-alone procedure
    PL/SQL procedure successfully completed.
    SQL>

  • Problem in calling a procedure in form builder

    sir
    i have developed a procedure in pl\sql libriries but when i call this procedure from trigger compiler can not recognized this procedure.
    procedure is: computetotal
    libraries name is pl_004
    plese help me and give me solution
    thanks in advance

    It the library is attached, expand the attached library, and try dragging the program unit in question, to local program units of the form and then try to compile the form.
    The only cause could be that library is not attached to the form, so give this above method a try to cross-check.

  • How to call external functions without a .DLL (just using a .H and .LIB file)?

    Hello everyone,
    actually I'm facing little difficulties on how to get an external function getting called from within CVI (Version 2009).
    I was supplied with a .H file and a .LIB file to call an external function from within my CVI project. The .H file looks like this:
    void exportedFunction(double *parameter);
    As far as I know, the external function was written with MS Visual C++ 6.
    So I tried to statically link to the extern al function like this:
    - Add the .H file and the .LIB file to the CVI project
    - #include the .H file where I needed to call the external function
    - do the external function call
    When building I get an unresolved external function call error from CVI so this seems not to be working.
    I made some searches around and got up with two possible issues. Maybe one of you can help me get a bit further and get things working.
    1) The "real" function code is located in the DLL file which was not delivered to me. Or is there a way to get things done (call external functions) just with a .H and a .LIB file (without any .DLL file included)?
    2) The external function does not export according to "C-Style" rules. The function signature in the .H file shows no things like
    extern "C" __declspec(dllexport) void __stdcall ...
     Or maybe it's a combination of both issues (missing .DLL + wrong export style of function)?
    I guess I could get around the wrong export style of the function when I manage to write a wrapper around the original function that actually uses C-Style exporting. But I guess I need the .DLL file for this try as well.
    Thank you for your answers.
    Best regards,
    Bernd
    Solved!
    Go to Solution.

    There is no need  for the dllexport stuff. There is also the option for a static library without any DLL.  But the 'extern "C"' is essential, because it forces the C++  compiler, which was probably used to compile the library , to use C calling convention.
    If you can't ask the provider of the library to provide a version which was compiled using C calling convention the way to go is to write a wrapper with VC++6 around that library which reexports the functions using C calling convertion. Something like
    extern "C" type0 myfunc1(type1 arg1, ...) {
           return func1( arg1,...);
    for every function , you need to use.
    BTW. "unresolved symbol" is the linker error message, you can expect if you try to link C code against a library build with C++ calling convention.

  • Calling stored procedures from entity object and application module

    Hello
    I've put in place an EntiyImpl base class containg helper methods to call stored procedures.
    I now need to call stored procedures from the application module.
    Apart from creating an application module base class and duplicating the helper method code is there a way
    to share the helper methods for calling stored procedures between the entity impl and application module impl ?
    Regards
    Paul

    Does the helper code depend on features of a particular entity object instance, beyond its database transaction?
    If so, I'm not sure I see how it could be used from an application module class.
    If not, here's what you do:
    Step 1:
    Parametrize the database transaction--you might even want to. So instead of
    protected myHelperMethod(Object someParam) {
    DBTransaction trans = getDBTransaction();
    change this to
    protected myHelperMethod(DBTransaction trans, Object someParam) {
    Step 2: make the method public and static--once you parameterize the DBTransaction, you should be able to do this.
    public static myHelperMethod(DBTransaction trans, Object someParam) {
    Step 3: Remove the method from your EntityImpl base class into a utility class:
    public abstract class PlSqlUtils {
    private PlSqlUtils() {}
    public static myHelperMethod(DBTransaction trans, Object someParam) {
    When you want to call the method from an application module, entity object, or even view object class, call
    PlSqlUtils.myHelperMethod(getDBTransaction(), paramValue);
    Unlike Transaction.executeCommand(), this lets you provide functionality like setting procedure parameter values, retrieving OUT parameter values, etc.
    Hope this helps,
    Avrom

Maybe you are looking for

  • Quantity clubbed for two schedule lines in sales order

    Hi, One finished item F1 having strategy 20. special procurement key as 40( to get from another plant) Its sales order is created for 20 EA on 6 nov.So one line item in sales order. Item availability check is done.in schedule line I can see system pr

  • 2 weeks view in Calendar

    In previous versions of OS X, there were ways to enable 2 (or more) weeks view in iCal / Calendar. There was a debug menu and then there was a Terminal script that allowed this. Yosemite has seem to take this option away. Has anyone found a way to en

  • Problems restoring IPhoto Library after hard disk crash

    I had a terminal hard disk crash a couple of months ago. The drive was replaced and new (well older) OS was installed. I have since updated to the current versions of the OS and Iphoto to iPhoto'09. My Documents and Pictures folders had been backed-u

  • Why is the Preferences Window in Firefox 3.6.12 for Linux coming-up blank?

    I just finished manually upgrading Firefox on an old machine running openSUSE 10.2; I decided against upgrading my OS because this is the only version in which my Olympus MAUSB-10 picture card reader works. In order to do this, I had to compile and i

  • Rownum / sorting / query stops working / friday afternoon nightmate

    Greetings, Let's say I have a perfectly working and very simple sql statement. This little thing turned my friday to nightmare. And I hope one of you can help me. :) SELECT 1 FROM my_tablel l WHERE l.first_id = :b1 AND l.open_flag = 'Y' AND NVL (l.fl