Frequently Asked Questions for Oraperl ______________________________________ What is Oraperl? ---------------- According to Buzz Moschetti, "Oraperl sounds like a denture cleaner". For the rest of us, it's a version of Perl which has been extended to manipulate Oracle databases. Is Oraperl public domain, shareware, or what? --------------------------------------------- Oraperl is Freeware; that is, it's author retains copyright (so it isn't public domain) but allows free distribution, under the same terms as Perl. It isn't shareware, because you don't have to pay to use it. How can I contact the author? ----------------------------- Unfortunately, I do not have access to the net at present. If you have problems with Oraperl, your best bet is to send a message to either comp.lang.perl or comp.databases.oracle, depending on whether the problem seems to relate to Perl or to Oracle. A number of Oraperl users hang out on both groups, so you may be able to get an answer there. If you really need to contact me, you can write to me at the address below. I don't have access to a system running Oracle at present, so I will only be able to give limited. Please include an International Reply Coupon if you want a reply. Kevin Stock 5 rue de la Liberation 78660 ABLIS France Will Oraperl run on my system? ------------------------------ At present, Oraperl is known to run on the following systems: Amdhal UTS Convex Encore Multimax, Oracle v6.0.27, Perl 3.0.27 - 4.0.36 NeXT Prime EXL MBX Sys V.3.1, Oracle 6.0.26 Pyramid (ATT Universe), MIPS (SysVr4) Sparcstation Sperry 500/80 Sys V.3.1, Oracle v5.1, Perl 4.0.3 Sun 4/280, Oracle 6.0.30 SunOS 4.1.1 Ultrix, Oracle v5 but if you can build Perl, you can almost certainly build Oraperl. Oraperl is distributed as source, so you build it yourself (or get a friendly system administrator to do it). You need the following on your system to build it: C compiler Perl source Oracle Call Interface (part of the Pro*C package) Will Oraperl work with {Dbase, Informix, Ingres, Interbase, Sybase, ...} ------------------------------------------------------------------------ No. Versions of Perl do exist for some of these databases; ask in comp.databases or comp.lang.perl for help. A project is under way to create a unified programming interface for all SQL databases, but there's a lot of work to do before it is available. Where can I get Oraperl? ------------------------ Oraperl version 2 appeared in the comp.sources.misc newsgroup as follows: v30i087-091 Part 01-05 29th June 1992 v30i099 Patch 01 6th July 1992 v32i093 Patch 02 4th October 1992 v34i021 Patch 03 12th December 1992 You should be able to find it at any comp.sources.misc archive site. One such site in the US is wuarchive.wustl.edu [128.252.135.4]. Look in the directory /usenet/comp.sources.misc/volume30/oraperl-v2. You also need the Perl sources. These are also in the comp.sources.misc archives. Contact Larry Wall if you need help finding them. I tried building Oraperl, but cc says "Redeclaration of sprintf in perl.h" Oraperl compiled OK, but the tests dump core Oraperl compiled and seems to run OK, but I don't get any output Oraperl compiled OK, but {something weird} happens -------------------------------------------------------------------------- You are probably running a dual universe ATT/BSD system and you configured Perl under BSD. Oracle programs have to be built under the ATT universe, so you will have to create an ATT version of uperl.o to link to Oraperl. Copy the Perl sources to a different directory and build uperl.o there. I tried building Oraperl, but cc says "Undefined: _my_setenv" ------------------------------------------------------------- You are running an old version of Perl, which doesn't have my_setenv(). If possible, you should upgrade to the latest version. If you can't do so, you could try adding one of the following to the start of orafns.c: If your system uses setenv(var, value) : #define my_setenv(var, value) set_env(var, value) If your system uses putenv(envstring) : void my_setenv(var, value) char *var, *value; { static char *envstr = NULL; if (envstr == NULL) { if ((envstr = (char *) malloc(1024)) == NULL) { return; } else { sprintf(envstr, "%s=%s", var, value); putenv(envstr); } } else { sprintf(envstr, "%s=%s", var, value); } } When I try to build Coraperl, I get messages about undefined functions ---------------------------------------------------------------------- You are probably trying to link Oraperl with the BSD curses routines. If you are on a dual universe system, you should use the ATT routines. If you are on a BSD-only system, then you need to modify the file bsdcurses.mus in $(SRC)/usub. You should #ifdef out the references to testcallback . Whenever I try to fetch a DATE or ROWID field, I get a truncation error ----------------------------------------------------------------------- This is due to a bug in early versions of Oraperl. You should upgrade to the latest version. If you cannot upgrade, you may be able to work round the problem with DATE fields by calling the SQL function TO_CHAR() in your SELECT statement.