Initiating a perl script from a trigger
I want to kick off a perl script from an Oracle trigger. Is this possible?
Not directly. At least as far as I know.
Here's how I see this done.
You should have a sqlplus running in background and waiting for an alert. On receipt of the alert the sqlplus will call a host(my_command) that will kick the named script.
null
Similar Messages
-
Calling PERL script from scheduler
Hello All,
I am trying to call PERL script from dbms_scheduler which makes the database connection using DBD module to read some values to perform the operation. My scheduler job kept failing with the following error:
ORA-27369: job of type EXECUTABLE failed with exit code: No such file or directory
STANDARD_ERROR="install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file
It can't open libclntsh.so.10.1 file when I run the job, I guess because in job session, it creates a new shell and doesn't inherit the .profile and none of the environmental variables get set. When I run the PERL script manually it works because of all the env variables, so I put all those variables from my .profile into PERL script itself using ENV function but it still doesn't work, failed with very same error. And yes I do set LD_LIBRARY_PATH to point to $ORACLE_HOME/lib directory. Moreover, if I run the PERL script manually from a shell where I dont inherit .profile, it fails with very same error, so it is related to the environment issues but I have no idea how to fix it. I read somewhere the setting those env variable in PERL script itself doesn't help because by the time PERL get executed all the compilers are already initialized and and they don't use those environement variables anymore then. So the question is how to make it work?
I would really appreciate if someone can help me fixing this, it's gonna change my life here :)
DB Version: 10.2.0.2 (also tested on 11R2, same problem)
OS: SUSE Linux 64 bit
And here is my libclntsh file in $ORACLE_HOME/lib
$ls -l libclnt*
lrwxrwxrwx 1 epsora epsdba 52 2009-09-15 13:39 libclntsh.so -> /u01/app/epsora/product/10.2.0/lib/libclntsh.so.10.1
-rwxr-xr-- 1 epsora epsdba 20274415 2009-09-15 13:39 libclntsh.so.10.1
-rw-r----- 1 epsora epsdba 36840968 2009-09-15 13:38 libclntst10.a
Please let me know if you need more information about this setup.
Thanks
Daljit Singh
Edited by: Daljit on Jul 6, 2010 10:06 AMNothing in your post indicates that you created a directory object and granted privileges.
http://www.morganslibrary.org/reference/directories.html
did you? -
How to call a perl script from an apple script
Hi All,
How to Call a perl Script from an apple script.
Pls Give Your comments.
Thanx & Regards,
EstherApplescript to call a perl script named "/tmp/x.pl" passing an argument "world"
do shell script "/usr/bin/perl /tmp/x.pl world"
or if the script is given the executable atttribute (chmod +x /tmp/x.pl),
do shell script "/tmp/x.pl world"
Perl script "/tmp/x.pl" that prints a string using a passed argument
#!/usr/bin/perl
print "Hello $ARGV[$1]\n"; -
Shell or perl script from OS command_Sender File Channel
Hi All,
I am trying to execute a perl script from the File Sender Channel(NFS), OS command Before Message Processing. The script works fine if i run it from the shell. But when PI calls the script, the script does not get executed. The audit logs mention that the OS command has been called.
I tried using:
1) /<fullpath>perlScript.pl /<fullpath>filename.dat
2) perl /<fullpath>perlScript.pl /<fullpath>filename.dat
Both these commands work fine when i execute them on the shell.
I am on solaris and PI 7.0. The permission for the perl script and input files are all 777.
FYI.. i am using this perl script to transpose a complex file and make it # delimited file.
I have already read the blogs for OS command and executed some sample scenarios successfully.
I tried to call a shell script that does the same functionality as the perl script. Even that does not work.
Also, wrote a shell script to call the perl script inside it. No luck.
eg:
touch /fullpath>/create_before.dat
perl /<fullpath>perlScript.pl /<fullpath>filename.dat
touch /<fullpath>/create_after.dat
In this case, the create_before.dat and create_after.dat is getting created but the perl is not called. I know this because i cant see the output files of the perl script.
Regards,
Balaji
Edited by: Balaji M on Oct 30, 2008 2:36 PMHi,
The problem is fixed. The shell or perl both have logic to transpose a non industry starndard file to the delimited file which PI can use an FCC to pick up.
This was the fix:
we need to mention the shell the script is going to be run in.
In the shell script we mentioned --> *#!/usr/bin/bash* as the first line
normally, when we use the command -- which bash on the unix command prompt, it tells us the path for the bash used.
another option --> #!/usr/bin/ksh
again, on the command prompt -- which ksh command will tell us what ksh is being used.
If the script is a simple one that does copy or move commands, i believe we need not use the commands above. But is a good practice to have them in the script.
Regards,
Balaji
Edited by: Balaji M on Nov 3, 2008 4:38 PM -
How to run the perl script from java ?
Hi , I need to run the pearl script from the server and to get the result of the script thro' java using SSH
Is there any 3rd party SSH API in java ?
Please help me out
thanks in advance
karthikThis seems like a very strange thing to want to do.
What is the perl script doing?
Do other programs (not some shell script) access this server-side perl script from a different machine?
If so how do they do it?
What currently triggers the perl script to execute?
What currently handles the output from the perl script?
If you can answer these questions (and understand the answers) you should be able to come up with a different approach to this.
You do not really want to call a remote perl script from a Java program, you want to achieve the effect you think that would have if you could do it.
So find the answers to the above questions, write them on 3" x 5" cards and lay them out on your desk.
What flow of control needs to happen? Which piece of code needs to produce or consume which piece of data?
If that fails, ask you self or who ever is making you do this what are the use-cases?
If you do not know what use-cases are or do not understand them well enough try reading
Use Case Modeling (The Addison-Wesley Object Technology Series) by Kurt Bittner and Ian Spence (Paperback - Aug 30, 2002)
http://www.amazon.com/s/ref=nb_ss_gw/002-7908514-4043267?url=search-alias%3Dstripbooks&field-keywords=use+cases&x=0&y=0
It is a short and easy to read book on the subject and also one of the best.
You MUST understand WHAT you are trying to achieve before you can decide HOW you are going to achieve it. -
Execution of Perl Script from HTML DB page.
Hi All,
I have a Perl script which takes 5 parameters and fetches data from one database and insert that data into my database table which is a master table for my project.
Is there any way to execute the perl script from a HTMLDB page by passing parameters.
Pls. provide me inputs if any.
Thanks & Regds.
Kumaraswamy RJ.Check out MOS note 1515609.1.
Regards,
- Loc -
Calling perl script from labview
Hi,
I have a perl script and I would like to call the perl script from Labview
anyone can help me with that?
I used system exec but I'm getting an error.
Anyone have a working example like calling a simple perl script from Labview.
Thanks
SL OngHi,
Thanks for the reply from everyone.
The attached is my code to call Perl script and after calling this, I need to query the Perl Script by sending command like @help. Do they have a way to query the Perl script by sending command like @help and get the return result.
I think Joseph you are right, but how do I get the return result if I invoke it in a separate dos session.
SL Ong -
Urgent Problem in Executing perl script from shell script
Hello,
I've a shell script on one server (source) and a perl script on another (target).
My perl script will check whether the directoryname, filename provided by shell script exists on the target server or not.
My shell script is as follows:
#! bin/bash
cmd=`ssh user@target "perl /home/user/test_dir/validate_file.pl"`
echo $cmd
And my perl script uses a package CU_Functions.pm, which is in the same directory as the perl script on the target server.
But when I invoke the perl script from shell script, I get the following error:
Source:user> (db:ias10g12_mid_db) /home/user/perl
$ sh /home/user/arcs/arcs_conn.sh
user@target's password:
Can't locate CU_Functions.pm in @INC (@INC contains: /local/perl-5.6.1/lib/5.6.1/i686-linux /local/perl-5.6.1/lib/5.6.1 /local/perl-5.6.1/lib/site_perl/5.6.1/i686-linux /local/perl-5.6.1/lib/site_perl/5.6.1 /local/perl-5.6.1/lib/site_perl .) at /home/user/test_dir/validate_file.pl line 13.
BEGIN failed--compilation aborted at /home/user/test_dir/validate_file.pl line 13.
Please let me know if I need to do any configurations prior to call the perl script.As for the Perl INC, I cannot recall the environment variable that sets that but the following example should work:
ssh user@host "export ENV_VAR=/path/to/include/files:$ENV_VAR ; /full/path/to/script" -
Hi guys,
I am developing an online ticket booking system.
i have come toa point where i need to call a perl script from JSP.
please let me know how to do it.
Basically, i need to call a function in perl script from JSP in order to encrypt my information.
Any help is appreciated.
Thanks in advance.
Chintan ShahI haven't done this myself, but it seems like it is possible in Tomcat.
You can configure Tomcat to handle .cgi calls (it does this via a CGI servlet)
http://www.ftponline.com/javapro/2003_03/online/perl_teden_03_18_03/
http://tomcat.apache.org/tomcat-5.0-doc/cgi-howto.html
Once this is set up, theoretically you should be able to then use requestdispatcher and forward/include a cgi script to invoke the perl.
I don't know if you are using Tomcat or not though... :-) -
Calling a perl script from stored procedure
Can anyone tell me how to call/run a perl script from a stored procedure? If you have a sample code, please include it.
Thanks in advanceIf you have a web server setup that runs perl, you can do this by using the utl_http package...Here is some code I use to run a perl script and print the results to a web page on our site.
The in_URL parameter is the address of the perl code(i.e. http://website/path/perlscript?param1=value1¶m2=value2 etc)
PROCEDURE call_perl(in_URL VARCHAR2) IS
/* This is setup to allow a perl program to be submitted as a batch program
using the standard Portal batch program.
Sometimes these jobs take a long time to run, so the timeout value must
be set to a large value. The default timeout is 60 seconds, which is not long enough. */
req utl_http.req;
resp utl_http.resp;
value VARCHAR2(1024);
BEGIN
req := utl_http.begin_request(replace(utl_url.escape(replace(in_URL,'%3A',':')),CHR(13)));
utl_http.set_transfer_timeout(req, 18000); -- Set timeout to 5 hours for this specific request.
resp := utl_http.get_response(req);
LOOP
utl_http.read_line(resp, value, TRUE);
htp.p(value);
END LOOP;
utl_http.end_response(resp);
EXCEPTION WHEN utl_http.end_of_body THEN
utl_http.end_response(resp);
WHEN utl_http.init_failed THEN
htp.p('INIT FAILED');
WHEN utl_http.request_failed THEN
htp.p('REQUEST FAILED');
htp.p(NVL(utl_http.get_detailed_sqlerrm,' No more detail available.'));
END;
If you don't have a web server setup, I don't know offhand how you could do this.
Laurel -
Executing a perl script from within java application
Hi,
Does anyone knows a way to execute a perl script from within java.
---kirkRuntime.exec("perl myscript.pl");
Of course whether that "works" depends on what the script does and where the java program runs. -
I am facing a problem in running a PERL script in JAVA in UNIX box..
I am able to call ther perlscript.
Perl script has
#! /usr/local/bin/perl
print "\nEnter Your Name :";
$name = <>;
print "\nYour Name is : $name\n";
exit 0;
Perl script request for the INPUT(name) .
My Java program is
File perlfile = new File("test.pl");
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("perl "+perlfile);
Here is the problem tat IT IS says error =2 ..What has to be the solution so tat i can CALL PERL SCRIPT as similiar to running it separatly in prompt { >perl test.pl }
PLEASE help me on this....In the PERL SCRIPT (test.pl)
LINE 1 : #! /usr/local/bin/perl
LINE 2 : print "\nEnter Your Name :"; .
LINE 3 : $name = <>;
LINE 4 : print "\nYour Name is : $name\n";
LINE 5 : exit 0;
When i run this script in perl test.pl in prompt (UNIX BOX), i am gettin the request for name "Enter Your Name:____ " but when i call this script from Java it doesn't request for name and moreover the process doesnt ends (use ctrl+c to come out of the process).When i come out forcefully it shows the ERROR=2.
My requirement is such tat need to call a PERL SCRIPT from java so tat java process give the control to PERL script and it will continue the process..
Sample scenario:
Java move a file and store it in a new FOLDER
MY perl script will read the file in new FOLDER.
here the perl script will get the file name for processing... My issue comes here .$name is not be prompted while calling thro java.. -
Executing perl script from Apex
Hi,
I have a requirement, to post the form controls in the apex page onto a perl script.
Can any one let me know whether this is feasible in Apex.
If Yes, can anyone please give me the steps or the related documents to 'submit' the apex page to specific perl script.
Any answers to this would be greatly helpful for us as we are dependent on this kind of architecture completely for
our requirements.
Thanks in advance,
SumanthHi,
I haven´t done this myself but I think the way to go is call perl from the database as an external procedure.
You might want to google for extproc_perl which should be the extension to use perl as an external procedure/
On the submit you can trigger PL/SQL to call the external procedure.
Regards
Bas -
Calling perl script from PLSQL
Hi All,
I have created Java stored procedure and oracle function to execute the os commnad, this works fine for calling batch scripts but when i used same function to call perl script,
like how we call in batch script
perl <script name> the sql gets hanged.
Is it possible to call perl like this?
or is their any other way to call from plsql
Thanks ChandraAre you able to run that perl script at DOS command line?
Did you call the perl script directly from the java proc or you put the perl command line in a DOS .BAT scirpt and called that from the java proc? -
Hi everyone,
Is it possible to execute a perl script directly from CPO without using a cgi or soap action, If yes, is there any documentation or model workflows that I can refer to...Its a prewritten script hosted in a linux box(svc cat server), first we tried to invoke it as a soap request...
<?xml version="1.0" encoding="UTF-8"?>
http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
">
#username#
this worked but we want to discontinue this approach,
so we tried to host the script as cgi and invoke the cgi directly...
but this is not working, so wanted to see if we can execute the script from CPO either directly by using CLI or by hosting the script in a server
Maybe you are looking for
-
Gmail causing issues with other email using mail app
I use the standard mail app for 3 hotmail accounts (with my own domain name) & a work exchange account (which I turn on and off as required). These work well on iPhone 4 & iPad3 using IOS5.1. However, on adding a gmail account to the mail program I
-
Hi every body I have problem with my n81 2G I went to: menu->messaging->option->settings->other->memory in use and change it to memory card Now I can't open my messages what should I do?
-
Apples vs Oranges which is faster??
A new 20" iMac with the 2.8GHz Intel Core 2 Duo and 3Gb of ram vs. a Dual 2.0Ghz Power PC G5 and 3Gb of ram.
-
I need help please. I have 6 apps updates shown on on the upper right corner of the app store icon. When i tried to open the apps store and go to updates, the apps that need to be updated were not appearing therefore i have no idea what those apps ar
-
I'm trying to distribute Nokia Suite by SCCM on a corporate network. Some computers have an issue when installing. The errors that show up are (MSI Log) MSI (s) (B8:38) [13:33:32:291]: Executing op: RegSelfReg(File=ta_flash_lib.dll,FileID=ta_flash_li