Call the function C external plsql - function of mapping error ORA-06521

Dear all,

I have the following C code:
class Factorial {
  public:
  int getVal (int a);
};

#include "Factorial.h"
int Factorial::getVal (int a){
  if(a!=1){
    return(a * getVal(a-1));
    }
  else return 1;
}
I created the library (.so) shared, created the library in Oracle DB, set up the extproc earphone and etc.
Also, I created the following plsql code:
CREATE OR REPLACE PACKAGE c_pack AS
  function factorial_func(x in pls_integer) return pls_integer;
END;
/
CREATE OR REPLACE PACKAGE BODY c_pack AS

   function factorial_func(x in pls_integer)
     return  pls_integer
   as language c
   library sys.c_factorial
   name "getVal";
   
END;
/
When I am trying to run this function always get ORA-06521. I changed the types of data - but nothing has changed.

Help, please.

Just in case, listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db)(PORT = 1521))
                   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (SID_NAME = PLSExtProc)
     (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
     (PROGRAM = extproc)
     (ENVS = "EXTPROC_DLLS=/u01/app/oracle/product/c_lib/factorial.so, LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/dbhome_1/lib")
    )
  )
[oracle@db admin]$ lsnrctl status listener

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 04-FEB-2013 21:24:36

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     listener
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                04-FEB-2013 21:23:37
Uptime                    0 days 0 hr. 0 min. 58 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/db/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@db admin]$

Hi 952942,

The following code works fine:

int getVal (int a){
  if(a!=1){
    return(a * getVal(a-1));
    }
  else return 1;
}

Compile and create the shared library:

gcc -fPIC -c factorial.c
gcc -shared -o factorial.so factorial.o

Package:

CREATE OR REPLACE PACKAGE c_pack AS
  function factorial_func(x in binary_integer) return binary_integer;
END;
/
CREATE OR REPLACE PACKAGE BODY c_pack AS
   function factorial_func(x in binary_integer)
     return  binary_integer
   as language c
   library sys.c_factorial
   name "getVal";
END;
/ 

It works:

begin
  dbms_output.put_line(c_pack.factorial_func(5));
end;
120

Best regards
Gena

Tags: Database

Similar Questions

  • Java Script alert: MuseJSAssert: error calling the function switch: security error?

    Hello

    I built a site of Muse and place a dashboard project animate the site. Here's the problem I have. When I saw in the browser through Muse all seem to work well. The problem is when I export to HTML. When I view the HTML file in Firefox, everything works fine. But when I discover the HTML in Chrome or Opera, I get the following error appears on the top of the browser: Java Script Alert: MuseJSAssert: error calling the function switch: security error: blocked a frame with original "null" access to a framework of cross-origin.

    Any ideas what is the cause? I noticed one thing, but if I click the button refresn the animation playback. The other thing I noticed, is that my full screen lide show is also affected by this error. He plays as the first image and the rest of the images are not displayed.

    Thank you for any suggestions to fix this.

    Hey all!

    I finally found how to solve this problem! At only took about 3 hours!

    Therefore, to do with the iframe code muse did for the lively edge file.

    If we take things from the outset, if everyone includes:

    1 publish a 'edge Animate Deployment Package (.oam)' dashboard animate

    2. in muse, file > Place > {exported .oem)

    3. put the file where you want

    4 muse export as HTML (file > export as HTML)

    5. your browser will open and display the error message, as shown above

    6 locate the HTML files and find "index.hml", or the page that your file hosted dashboard is on

    7. open it in Notepad, or editing program code. I use Adobe Edge Code CC

    8 remove the text: class = "animationContainer an_invi" (press ctrl + f and type to find the line)

    9 be sure to save and then reopen the Web page!

    10 smile for yourself and be raised

  • I exported a must of the site in HTML format and get the following error - MuseJSAssert: error calling the function switch: SecurityError: cannot read property 'documentLes' of 'HTMLIFrameElement': blocked a frame with original 'null '.

    I exported a must of the site in HTML format and get the following error - MuseJSAssert: error calling the function switch: SecurityError: cannot read property 'documentLes' of 'HTMLIFrameElement': blocked a frame with original 'null '.

    Does Anyon know what to do - how to fix this?

    Hello

    could you please take a look at this and see if that helps

    Java Script alert: MuseJSAssert: error calling the function switch: security error?

  • JavaScript exception: error calling the function switch: TypeError: undefined is not an object (evaluation "jQuery.browser.msie") - HOW I ME get RID OF THIS

    Screen Shot 2015-12-12 at 16.54.47.pngScreen Shot 2015-12-12 at 17.01.45.png

    Hello

    I get these errors a lot lately on my sites of muse - it happens when I rename pages or change the navigation menu - I tried several times and this isn't to do with external plugins - this is a bug of muse - appears when my loading sites and also when you select a page in the navigation bar - in the past for a single page websites - I just copy the contents in memory - remove the rebonding and page - everything and it works again - of course, I don't want to do that with Web sites with multiple pages - in the past, anyone in the forum mentioned deleting a file of muse on the server to reset something - any who want to add to it or guide me to solve these problems, so I know what to do when they arrive

    Jay

    Don't know if it's the same thing, but share this discussion JavaScript exception: error calling the function of selection: [object error] after the last update of the software Adobe Muse.  I export the html files and load them on my server.  I replaced all the files.  Only happens in IE11 just in case it helps.

  • Get this error on pages MuseJSAssert: error calling the function switch: TypeError: $(...). museMenu is not a function. Have read and did what I could find to solve problems.

    Hi I keep getting the error MuseJSAssert: error calling the function switch: TypeError: $(...). museMenu is not a function on my Web site which is not published, but I am downloading in British Colombia through muse.

    I'm on a PC.

    I tried export to HTML and still have the same problems locally.

    I saw that someone had a problem with mailchimp forms in one of a previous post. I removed the a widget of external source? for reservation and it was always happening.

    I created a new project like this and downloaded BC site all the files again to see if she could make a difference but still have the error.

    It's my URL BCdraft - home

    I tried to look at the site in the section "console" (where you can see the code of pages) to see if I could see the error that people had already advised but I get nothing... maybe not completely published because?

    I have reloaded the site through the muse in British Colombia with "all files" and is always the same.

    Here are some pictures that can help...

    Once on the home page, it may come with the error immediately or not... If you choose to say the title of the FAQ

    choose faq.png

    You must then (or choose other titles until it is) have this error coming...

    error.png

    Note that the title you have previously chosen as 'FAQ' now as 'price '.

    Changes to old title pricing.png

    This title is for some time and seems strange appears again.

    Here is a picture of scripts/css in the admin of BC as I've seen that this can be a problem but I don't know if this is normal or not and how to fix...

    cpanel.png

    I had taken a break from building the site for about a month and I had added on changes, but not them uploaded to the server just left saved on my PC.

    In the hope of an easy solution; p

    See you soon,.

    Steve.

    I published BC... what I wanted to say is that I did not live.

    Export HTML was to check if the error occurred in the HTML files locally.

    It ended up being a code of the external widget that was causing the problem. With him removed the pages work fine. (I had removed what I thought of them while troubleshooting, but I forgot to a separate embedded image)

    Specifically, it is because it was a pop-up overlay widget made for reservations. When I put it to then start a new page in the tab it works now. Seems that muse has changed to something allowing overlays?

    My thanks to Neha in support

  • MuseJSAssert: Error calling the function switch: TypeError: $(...). toBrowserWidth is not a function

    Hey,.

    I made a site with Muse on April 2014 and now (September 2014) I got the latest version of Adobe Muse, updated the site, send to an external FTP client directly from Muse, and now my client told me that he cannot see the site of Mozilla Firefox from his PC. It is said that MuseJSAssert: error calling the function switch: TypeError: $(...). toBrowserWidth is not a function. He can see the site in Internet Explorer. And it works with my Firefox, Chrome and Safari browsers on mac.

    I have found some answers and tried: I added / of the museutils.js of the file so that it looks like this: {url:"/scripts/pie.js... and (" / MuseJSassert:... instead of: {url: "scripts/pie.js... and (' MuseJSassert:...") "}")}

    Done with the code in parentheses editor and send the files to a remote server with Filezilla.

    Now, it displays error on my browsers as well, he said: some of the files on the server may be missing or incorrect. After you click OK, the site seems normal.

    I also deleted the site distance and exported directly from Muse again. Now it looks fine on my browser again, but not customers.

    Any help?

    It's frustrating because I'm not a coder (I chose the Muse of reason) and now I don't know what to do...

    I checked out the site on my end, but can't reproduce the same error:

    http://take.Ms/dAPJ0

    Please try to delete browser cookies or try to reset the preferences.

    Thank you

    Sanjit

  • MuseJSAssert: Error calling the function switch: TypeError: 'undefined' is not a function (assessment ')

    Help, how do I fix this bug?

    MuseJSAssert: Error calling the function switch: TypeError: 'undefined' is not a function (assessment ' $('#u69').registerPositionScrollEffect ({"enterSpeedY": 1, "exitSpeedY": "offset" 0,:-0.04999 999999999005})')

    and I also have this error:

    MuseJSAssert: Error calling the function switch: TypeError: 'undefined' is not a function (assessment '$('.browser_width').toBrowserWidth ()')

    Help please help

    The most common cause of JavaScript errors on a page of Muse is missing from server or .js files or other files on the server, not all human beings of the backup of files .js version of Muse. If you use an external FTP client, you must re - download all the files and folders every time that a site is implemented using an updated version of Muse (since the code generated by changes of the Muse of liberation to free to improve page load performance, support new features, new versions of browsers or devices (, etc. of the address, etc.).

    The second most often the cause of errors JavaScript on a page Muse is bug embed code and/or include code that is in conflict with the JavaScript code used by Muse. Plan to temporarily remove your embed code to see if the problem goes away and so isolate the cause.

    And, of course, it is possible, a JavaScript error is caused by a bug in Muse or a bug in an update of the newly introduced browser, but frankly, given the level of tests that are placed in a statement of those who tend to be very rare and when they do occur, they are usually very quickly addressed by an update of Muse.

  • MuseJSAssert: Error calling the function switch: ReferenceError: Spry is undefined.

    I started Muse today and he said there was an update available. I installed and then made a few small changes on my 5 page site. Then I exported the HTML code and uploaded to my server.

    But now when I try to navigate the site in Chrome, I get the following error message:

    MuseJSAssert: Error calling the function switch: ReferenceError: Spry is undefined.

    The only changes I made were adding text to a few pages and adding metadata to each page information and displaying HTML exported locally (before transfer) everything behaves as it should... an error message.

    Any ideas why its doing this? or, more importantly, any suggestions on how to stop it from doing this? He did not have that yesterday before get me these small changes.

    Here's the URL: www.gardensbytheseaursery.com

    Thanks in advance.

    Jake

    This error occurs if all of the files for the site that we downloaded.

    The 2.0 update includes numerous improvements in the generated HTML, CSS and JavaScript, so while you can directly changing only some pages, if you are using an external FTP client all the exported files, and the files must be downloaded. (The new built-in FTP support automatically only generates and download the files that have changed since the previous download.)

  • Is it possible to call the function in the module through function of interface component

    Hello

    I see this in the livedocs.

    "In general, if you want to set properties on controls in the module using external values, you must create the variables that may be related. Then, you set the values of these variables in the methods implemented in the interface. If you try to set properties of the controls of the module directly using the external values, controls may not be instantiated by the time the module is loaded and the attempt to set the properties may fail. »

    I have a component in a module. I have to call this component of the interface function funcion. That is to say my main application call the function of interface, and that interface funcion must call funcion of the component. Is this possible. I get error that the element is null, if I try this. Is it possible to do so.

    Thanks in advance.

    Hi, yes I got your problem now when I have your code.

    See it here:

    MOD = modInfo.factory.create (like TestInterface);
    var el: IVisualElement = modInfo.factory.create () as IVisualElement;
    this.addElement (el);

    It won't - you create 2 separate instances of the module, which you create - 'el' and the other a not - "mod".

    It should look like this:

    var el: IVisualElement = modInfo.factory.create () as IVisualElement;
    Note: I usually use var el: Module = modInfo.factory.create () like Module; Does not need at least for the moment to cast as IVisualElement but I know that it is not bad, I read in some articles before getting if I remember correct it does not give access to some methods, but not sure.

    MOD = el like TestInterface;

    addElement (el);

    First, you create the instance of the module with the factory.create (), and then cast you to the interface.

    F

  • Call the function in LabView from a DLL, and then access the global variable of DLL

    I've created a DLL in LabWindows with a function and structure.  I want to call the function from LabView and then access the overall structure.  I am able to call the function in the DLL with a "call library function node" and has access to the return value, but I can't understand how to access the overall structure.  The structure is declared in the header DLL with __declspec (dllimport) struct parameters file.

    Is it possible to access this structure without using the library of network variables?

    My guess is that you need two bytes of padding after "in_out" and another to two bytes of padding after "anin."  The reason being that ints are 4 bytes, and most of them C compilers will align on 4-byte boundaries.  The struct will naturally start to such a limit (in fact, in Windows, it will probably start to an 8 byte boundary).  If you then count bytes in your structure, you are 70 byte after "in_out."  70 is not divisible by 4, so you need 2 bytes more to reach the next 4 byte boundary.  You can also you could reorganize your struct so that "anin" follows "in_out" and this is probably the best option if it won't cause you other problems.

    Unlike most C compilers, LabVIEW compressed structures as closely as possible, without filling.  I don't know enough about the history of LabVIEW and internal parts to explain the reasons and to do this performance penalty, but, as choice of LabVIEW "endianness", it is probably a remnant of the first versions of LabVIEW that were running on the Mac.

    If for some reason you want to force your C struct to match package LabVIEW, you can use the #pragma pack (x) directive, but I wouldn't recommend that here because you can control the C and LabVIEW.

    EDIT: in the cases where it was not clear, add padding to your cluster of LabVIEW, insert appropriate size or items at the place desired in the cluster.

  • How to identify which switch in the Panel called the function?

    Here I have some 192 switches and 192 leds corresponding to each switch,

    If a switch is on(say 10th) consequence (10th) led should light up.

    I want to use the same function for all pairs of led switch.

    all I could do was to check the switch in a loop and then set the individual leads, but I find it very little effective way to do it.

    int switchOnOff (int, int int event control panel CVICALLBACK,
    void * callbackData, int eventData1, int eventData2) is the function.

    None of these arguments I can use it to extract what (the unique id for this turnout) switch called the function so that I can pass corresponding led glow?

    It occurred to me now that the table is not necessary at all: you can simply assign to each switch the corresponding ID led the callbackData, so that the code is even simpler than my previous:

    // At panel load:
    SetCtrlAttribute (panelHandle, PANEL_SWITCH1, ATTR_CALLBACK_DATA, (void *)PANEL_LED1);
    ...
    SetCtrlAttribute (panelHandle, PANEL_SWITCH192, ATTR_CALLBACK_DATA, (void *)PANEL_LED192);
    
    // In the control callback
    GetCtrlVal (panel, control, &sts);
    SetCtrlVal (panel, (int)callbackData, sts);
    

    To answer your last question, "Management Board" means immediately after the call to LoadPanel.

  • Call the function in the UI part without head

    I develop some app with no head.

    When I change the code in the head part and build - launch. But nothing changes in the part without a head.

    I have another solution call the function in the UI part headless. But whatever it is called.

    Please help me solution?

    The part without head of a long walk without head application is still running in the background. It will not update until you stop the part without a head.

    To stop the game without leading the race, you have three choices:
    (1) build increment in the bar file version - descriptor.xml. This will force the part without head to stop and restart with the new code.

    (2) use the monitor of the device to manually stop your application from running. Then, new launch and your game without head will run the new code.

    3) to implement your own way without a head, like a button that would send a personalized call to headless with (say) action "com.myDomain.myAppName.SHUTDOWN" and when headless receive this invocation, operate you this line:
    BB::application::instance()-> quit()
    This will make the part without head stop, then you run and your part without head will take place the new code.

    I prefer the #3 method, but if you do, don't forget to hide this feature before releasing to the public.

  • How to call the function "remote address book look up" J2ME app?

    We develop J2ME on BB and call the function "search of remote address book." any API we can use? Thank you very much!

    You can use BlackBerryContactList J2ME

  • Call the function QML from C++ (simple question)

    I guess that's a pretty easy question but I'm a bit new apart from development c ++ of BB10. I have a QML file in the assets folder called Functions.qml which has only onne inside functions.

    import bb.cascades 1.3
    
    Page {
        objectName: "funct"
        function printStat() {
            console.log("hello");
        }
    }
    

    In one of the functions in applicationui.cpp there is a function called resendNotification() (you may know this code from the model of the app without head)

    void ApplicationUI::resendNotification()
    {
        InvokeRequest request;
        request.setTarget("com.example.TestNotificationService");
        request.setAction("com.example.TestNotificationService.RESET");
        m_invokeManager->invoke(request);    // --> call the printStat() function of Functions.qml file
        Application::instance()->minimize();
    }
    

    My question is, before you minimize the app How can I call the function printStat() of the qml file? I have always developed my apps in QML so never had to deal with c ++. Should be easy enough to call a function well.

    Thank you in advance!

    first step is to find the object by ObjectName using findChild, usually from your element root (navigationPane).
    example:
    NAV-> findChild ("myTextField")

    If you have the object of another source that is fine too, of course.

    second step is to use QMetaObject::invokeMethod with the object and the name of the method.
    Example:
    QMetaObject::invokeMethod (container, "setText", Q_ARG (QVariant, text));

  • call the function onCreationCompleted c ++ in qml

    I currently have a problem with the c function call ++ QML.

    Œuvres of normal calls. But when I call a function in onCreationCompleted, he cannot access qml object on the page.

    For example:

    {Page}

    onCreationComplete:

    {myFunction() ;}

    Button {}

    ojbectName: "button1".

    }

    }

    MyFunc access using findChild button1.

    But this return 0 x 0, means the button does not exist.

    So how do I access button1 in c ++ to what page is loaded?

    I have posted from a phone, so sorry if there is no error.

    Look, we can't access the qml object when the page is created (we call it in onCreationCompleted). I bypassed by calling the function after navigationpane.push.

Maybe you are looking for

  • My I phone will not load

    I tried several Chargers, but all have failed to charge my phone but they charge my friends.

  • presentation is not showing is not the projector

    I am a teacher. I use keynote to give the notes/lecture to my students. Today, after having finished class I escaped to my presentation and made preparations to restart. When I hit 'play', the presenter appeared on my MacBook Pro retina (as it does i

  • Problems with files missing .msi prevents me to uninstall QuickTime and iTunes.

    When I try to uninstall QuickTime or iTunes (which uses QuickTime) I get the following dialog box: "The feature you are trying to use is on a network resource that is unavailable." and «Click OK to try again or enter a different path to the folder co

  • Visa service pack 1 is not installed

    Once that my computer is going threw the initial load down, it stops and starts to install service pack 1, then it gets 25% complete and says could not be installed.  Help!  What should I do?

  • New x120e - "Unknown device" under USB controllers

    OK, so I'll try again from Firefox this time. For the first time poster, so please, be gentle. I recently ordered and received a x120e. The first time startup in Windows, the ThinkVantage Toolbox had a yellow exclamation point. To study more, I deter