SQL batch file in XP
Hi,
I am writing following s.bat file in XP for some admin task
sqlplus "a/a@toto as sysdba" <<!
shutdown immediate;
startup;
but when I am executing s.bat only my first line is getting displayed nothing else. What is I am missing out ? ( I know this thing working in unix environment ) Kindly guide me.
thanks & regards
pjp
Hi,
I am writing following s.bat file for some admin task in XP.
sqlplus "a/a@toto as sysdba" <<EOF
shutdown immediate;
startup;
EOF
But when I am executing this batch file from dos prompt in XP only first line is getting displayed and again coming on dos prompt. Kindly suggest what I am missing out.
thanks & regards
pjp
Similar Messages
-
hi
how can i use a external file i.e a text file or a SQL file in when button pressed trigger.
like
i have a text file like abc.txt
i want to execute the SQL in this file when i m pressing a button..
thxYou could start these <your sql_script>.sql
(batch files) from Forms with the Host() or Client_Host()
i.e
HOST (cmd ,screen);
The code you wrote in your batch_file is:
sqlplus user/pass@test @<your sql_script>.sql -
PL/SQL w/ Java to run OS batch file crashes Oracle
I followed instructions from "Ask Tom" on using PL/SQL with Java to execute an OS batch file. For testing purposes, my batch file does nothing more than display the date and time from the OS.
However, when I run the PL/SQL that executes this simple batch file repeatedly - anywhere from two to four times, the Oracle instance crashes abruptly. Nothing is written to the alert log. No trace files are created.
Here is a sample session:
SQL*Plus: Release 9.0.1.3.0 - Production on Wed Mar 24 10:04:26 2004
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> set serveroutput on size 1000000
SQL> exec dbms_java.set_output(1000000) ;
PL/SQL procedure successfully completed.
SQL> begin
2 rc('c:\dba_tools\jobs\test.cmd') ;
3 end ;
4 /
C:\Ora9ir2\DATABASE>date /t
Wed 03/24/2004
C:\Ora9ir2\DATABASE>time /t
10:05 AM
PL/SQL procedure successfully completed.
SQL> begin
2 rc('c:\dba_tools\jobs\test.cmd') ;
3 end ;
4 /
C:\Ora9ir2\DATABASE>date /t
Wed 03/24/2004
C:\Ora9ir2\DATABASE>time /t
10:06 AM
PL/SQL procedure successfully completed.
SQL>
Shortly after the second "run", Oracle crashed. All I received was the following error message:
Unhandled exception in oracle.exe (ORAJOX9.DLL): 0xC0000005: Access Violation
Here is the Java procedure at the heart of my PL/SQL:
create or replace and compile
java source named "Util"
as
import java.io.*;
import java.lang.*;
public class Util extends Object
public static int RunThis(String args)
Runtime rt = Runtime.getRuntime();
int rc = -1;
try
Process p = rt.exec(args);
int bufSize = 4096;
BufferedInputStream bis =
new BufferedInputStream(p.getInputStream(), bufSize);
int len;
byte buffer[] = new byte[bufSize];
// Echo back what the program spit out
while ((len = bis.read(buffer, 0, bufSize)) != -1)
System.out.write(buffer, 0, len);
rc = p.waitFor();
catch (Exception e)
e.printStackTrace();
rc = -1;
finally
return rc;
I am running Oracle 9i rel. 2 installed on my PC under Windows XP Professional (Service Pack 2). My knowledge of Java is next to nothing.
Can anyone give me an idea(s) as to what might be causing Oracle to crash?
Thanks.Using 9.2.0.4 I made the following adjustments and it seems to run as often as I care to do it:
Java changes:
create or replace and compile
java source named "Util"
as
import java.io.*;
import java.lang.*;
public class Util extends Object
public static void RunThis(java.lang.String args)
Runtime rt = Runtime.getRuntime();
int rc = -1;
try
Process p = rt.exec(args);
int bufSize = 4096;
BufferedInputStream bis =
new BufferedInputStream(p.getInputStream(), bufSize)
int len;
byte buffer[] = new byte[bufSize];
// Echo back what the program spit out
while ((len = bis.read(buffer, 0, bufSize)) != -1)
System.out.write(buffer, 0, len);
rc = p.waitFor();
catch (Exception e)
e.printStackTrace();
finally
PL/SQL Wrapper :
create or replace procedure rc (cmd VARCHAR2) as
language java name 'Util.RunThis(java.lang.String)';
Execution:
begin
rc('c:\dba_tools\jobs\test.cmd');
end ;
D:\oracle\ora92\DATABASE>date /t
Fri 03/26/2004
D:\oracle\ora92\DATABASE>time /t
10:48 AM
PL/SQL procedure successfully completed.
SQL> /
D:\oracle\ora92\DATABASE>date /t
Fri 03/26/2004
D:\oracle\ora92\DATABASE>time /t
10:48 AM
PL/SQL procedure successfully completed.
SQL> /
D:\oracle\ora92\DATABASE>date /t
Fri 03/26/2004
D:\oracle\ora92\DATABASE>time /t
10:49 AM
PL/SQL procedure successfully completed.
SQL> /
D:\oracle\ora92\DATABASE>date /t
Fri 03/26/2004
D:\oracle\ora92\DATABASE>time /t
10:50 AM
PL/SQL procedure successfully completed.
SQL>
The only thing I really changed was the reurn value from the java procedure. If it has a return value then it should be declared as a function, not a procedure. Since you probably (apparently) weren't using the return value I dropped it and made it a procedure. -
In batch file i want to execute sql commands
in x.bat file i write the following
sqlplus user/pass@host @c:\a.sql
@c:\b.sql
when i execute this batch file it is connected to the databse
and the table of a.sql is created in the database.
but b.sql is not created.
it is creating only one table
i want ot create more no of tables with different .sql files
like @c:b.sql
@c:c.sql
@c:d.sql
please any body helpThe problem you are running into is that SQL Plus only recognizes the first command you have written in the batch file.
sqlplus user/pass@host
SPOOL c:\master.log
@c:\a.sql
@c:\b.sql
SPOOL OFF
SQLPlus will recognize the spool and first sql command, but the batch file gets command back after the first sql command executes and doesn't recognize @c:\b.sql or know what to do with it. To run multiple SQL commands you have to create an external SQL file with all the sql commands in it with the Spool files you want created, then in the batch file you only call the one SQL script.
Create a master file like so:
-- Script Name : AllFiles.sql
SPOOL c:\master.log
@c:\a.sql
@c:\b.sql
SPOOL OFF
In x.bat
CALL SQLPlus user/password@database @AllFiles.sql
This should get you your required results. -
How to execute a .sql file from a batch file
Hi all
I've to take backup of a database weekly twice on every wednesday & Friday @ 5pm IST. I've written a hot backup script, which works every well.
now i want to automate the script. ie i want this script to run on wednesday & friday @ 5pm without any human interfearance ie with out actually any1 executing this script.
i created a batch file prod.bak with the following lines
@echo off
set oracle_sid=testdb
set oracle_home=d:\oracle\ora92
sqlplus /nolog
connect sys as sysdba/oracletest@testdb
this batch file when eexecuted connects me to sql prompt.
Now i want to execute my backup script bkp.sql automatically when it is connected to sql prompt.
(i tried with these lines in the above batch file...
call bkp.sql---it just opens the bkp.sql file in notepad & displays the script
start bkp.sql---same as call
connect / as sysdba/pwd@[email protected] --- does not work simply remains a the sql prompt.
At 17:00 /Every:w,f "d:\bkp.sql"---does not work simply remains at the sql promt.)
Can any1 let me know what should i write in the batch file that will execute the bkp.sql file automatically after it gets connected to sql prompt. M using oracle 9i.
I'll manage he time through windows utility of scheduling task.. Let me know how to execute the .sql file from a batch file.
Thanks
TriptiTry
sqlplus "sys/oracletest as sysdba" @bpk.sql
Working locally, and having set the ORACLE_SID, you don't need to specify the SqlNet alias (@testdb).
Remember to put an exit at the end of the bpk.sql script. -
How to write sql command in batch file
hi,
i m using oracle 9i on windows. i want to know how can i write sql command on batch file. i want to use a batch file to use sql command like shutdowm & startup command and any select command too.
so plz tell how can i do it ?
thxssuperdba wrote:
thxs u all , i got it at i wanted to do.
thaks u all for yr precious time.
thxsYou've 67 questions with 63 UNanswered. Please mark this question as "answered" and give points to the users whose answer you accept as "helpful" or "correct"
Kamran Agayev A. (10g OCP)
http://kamranagayev.wordpress.com
[Step by Step install Oracle on Linux and Automate the installation using Shell Script |http://kamranagayev.wordpress.com/2009/05/01/step-by-step-installing-oracle-database-10g-release-2-on-linux-centos-and-automate-the-installation-using-linux-shell-script/] -
Execution of a batch file within SSIS fails in Sql Server Agent Job
Hi All,
I have an SSIS Package, which simply runs a batch file , the code for the batch file is
MOVE \\cambosnapp01\Claims\Analytics\NICB\CurrentAlerts\* \\cambosnapp01\Claims\Analytics\NICB\AlertsArchive
If i run the SSIS package manually it runs fine and moves all the files, however if i run the package through a Sql Agent Job it fails with the following error
The directory "\\Cambosnapp01\Claims\Analytics\NICB" does not exist
This is where the batch file is located, i am not able to understand if the SSIS package is running fine then why not the sql agent job?
I also tried to create a sql agent job using Operating System(CmdExec) and i copied my batch file code in the command i am running it as SQL Server Agent Service Account , and here it fails as
Executed as user: CAMELOT\svcDW. Access is denied. Process Exit Code 1. The step failed
Does this mean this user doesnt have the rights to excute a batch file? how did this user even come up i am not running it from this user i am running it from SQL Server Agent Service Account . I dont know who is that user and if he even has the rights to
execute a batch file.
Can someone please help me with any solution for this? either first way or second way anything works fine for me.
ThanksHi SQLDEV,
According to your description, you are experiencing the issue "The directory "\\Cambosnapp01\Claims\Analytics\NICB" does not exist" when run the SSIS package
in SSMS by using SQL Server Agent, right?
In your scenario, since you can run the package in SSDT manually. So as per my understanding, the issue can be caused by that the Services Account of your SQL Server Agent do not have the permission on that folder. To avoid this issue, you can set the folder
permission for your SQL Server Agent account or change the services account to an account who have the corresponding permission. Please refer to the link below to see the details.
https://msdn.microsoft.com/en-us/library/bb727008.aspx
https://msdn.microsoft.com/en-us/library/ms345578.aspx
Regards,
Charlie Liao
If you have any feedback on our support, please click
here.
Charlie Liao
TechNet Community Support -
SQL 2008 Agent - run batch file not working
Hello,
I am having some strange issues with a batch file running out of SQL agent I'm hoping I can get some help with.
The batch file's purpose is to send some log files to a SFTP server.
The job has been working great for the past 3 weeks, however this morning it stopped working. The job doesn't error out, however the entire job completes in 00:00:00 duration and I'm given the following message
Date 4/7/2014 3:38:00 PM
Log Job History (***Log Transfer)
Step ID 1
Server *******
Job Name **** Log Transfer
Step Name run batch
Duration 00:00:00
Sql Severity 0
Sql Message ID 0
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 0
Message
Executed as user: USERNAMERemoved . The step did not generate any output. Process Exit Code 0. The step succeeded.
The batch file looks like
echo *********************************
echo ** JOB EXECUTED %date% %time% **
if %errorlevel% neq 0 exit /b
C:
cd "C:\Program Files (x86)\WinSCP"
winscp /console /script=G:\Batch\LogTransfer.txt
call G:\Batch\LogTransfer2.bat
echo ** COMPLETED %date% %time% **
echo *********************************
I have numerous other batch jobs running on this server, no other job has had this issue. I have deleted and recreated both the job step and the entire job. I have recreated the batch files from scratch. I have also deleted the entire
contents of the batch file and just simply put in echo **** and still received the message so I'm near positive it has nothing to do with the actual batch file.
I have reset SQL Agent, as well rechecked that the SQL Agent account has run batch rights granted to it.
I moved the batch files to another folder, and they worked for about 4 runs until the same issue happened!!!
The job does execute 100% perfect if I run it manually via batch or if I kick it off starting the job out of SQL.
I am out of options here, does anyone have any ideas that could help me out?
Thanks,
RyanHello,
Try to edit the step, and on the Advanced page of that step try to configure the job to create a log on the location you specify (Output file). Try to run the step again and examine the log created.
Could you try to change the owner of the job to “sa” or to your Windows account? Maybe the SQL Server Agent account does not have access
to the following folders:
G:\Batch\
C:\Program Files (x86)\WinSCP
Alternatively, you can try to create a proxy account.
http://technet.microsoft.com/en-US/library/ms190698(v=SQL.105).aspx
Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com -
How to create Batch file to execute sql scripts
Hi friends,
i want to create batch file to execute all my .sql scripts.
I have all table ( all table scripts in single file ) ,Udds ( all udds in single file ) ,Stored procedures( separate file for each SPs ),Functions ( Separate file for each Functions ),Triggers and views scripts in .SQL file.
can anybody tell me how to create batch file for executing all these scripts in sql server ?.
while executing, it should ask Database name,server name, password. if these details are given then it should execute my all scripts in given database
, if any error thrown then that error and procedure name alone have to move to separate log file..
Please help me if this possible or any other easy way to do this..
Thanks - RaviHi Mate.
can i save the below details in my batch file parmantly, so that i don't need to provide the details agains again in CMD while i execute this. Please help
set /p SName=Server Name :
set /p UName=User Name :
set /p Pwd=Password :
set /p DbName=Database Name
If i am providing the details before execution of this bat file it will throw error. -
Procedure/batch file to export data from sql to excel(predefined path)
Hi,
I have countries, sites, states tables (total 3) in database (i have user id and password to connect to this database).
every week i need to extract data from these tables into excel files and i need to save those in shared drive for team use.
Currently i am connecting to database every time running sql query and manually exporting that latest data to excel and saving that as excel files in (G:\team\common\) folder with specific name.
output format should be : excel (.xls)
file names should - countries.xls,sites.xls,states.xls
server name : ap21
output location : G:\team\common\ ( G is shared drive).
i heard that we could create batch file to do this task and also we could use oracle procedure to do this task. but not sure which one is the best option.
could you please guide me what is the option and also help me with technical stuff to do this task.Hello,
output format should be : excel (.xls)Do you really want to create .xls files? This is not easy to do because it is a proprietary (MS) binary format. You should consider other formats like .csv or .xlsx. Follow the link in the previous answer how to generate them.
file names should ...The name of the files does not matter, you are free to name them as you like.
server name : ap21
output location : G:\team\common\ ( G is shared drive).You can write the file generated in the database only to directories that are accessible from the db as Oracle Directories. You could mount the shared drive to the db server, but it might be better to write the output to a server directory and then transfer them to the shared drive with OS-copy command or FTP.
i heard that we could create batch file to do this task and also we could use oracle procedure to do this task. but not sure which one is the best option.I would use Oracle Scheduler to execute a PL/SQL procedure to generate the files and then a OS-batch file to transfer them. You can use the Scheduler to execute the batch file too, see {message:id=3895983}.
Regards
Marcus -
Execute a sql command in a DOS batch file
hi
can anyone help let me know if there is any way to
achieve this objective.
objective is as below
There will be a batch file run from a DOS prompt
This will generate a CSV file for a SQL query
and dump it on the local machine.
thanks and regards
Ashishhi Ashish,
try using this
at the command prompt:
sqlplus username/password@connect_string @scriptfile
and the contents of the scriptfile should be
spool file.csv
sql select statement;
spool off
exit
HTH
Naveen -
Is it possible to call a windows batch file from PL/SQL
Hi gurus,
Would require your help.Is it possible to call a windows batch file from PL/SQL??If yes can you give an example for the same or any workaround for the same.
Regards
VijayHi!
Youn need some extproc related entries in you listener.ora and tnsnames.ora file.
*1. In the listener.ora:*
Defining the listener process is done in two parts.
The information contained in each listener differs!!!
The first part is as follows:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc)) <--- *ADD THIS LINE
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostname)(PORT = 1521))
)The seoncd part is as follows:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = YOUR_GLOBAL_DBNAME)
(ORACLE_HOME = c:\oracle\product\10.2.0) <-- THIS IS YOUR ORACLE_HOME
(SID_NAME = YOUR_SID) <-- SID
(SID_DESC = <--- ADD THIS LINE
(SID_NAME = PLSExtProc) <--- ADD THIS LINE
(ORACLE_HOME = c:\oracle\product\10.2.0) <--- ADD THIS LINE AND EDIT TO YOUR ORACLE_HOME
(PROGRAM = extproc) <--- ADD THIS LINE
(ENV = "EXTPROC_DLLS=ANY") <--- ADD THIS LINE
) <--- ADD THIS LINE
)*2. In the tnsnames.ora you need to add the following entry:*
*(The KEY value entered must be match to the KEY value entered int the listener.ora file!)*
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)Finally you need to restart your listiner. After restarting there will be a service called "PLSExtProc" in your listener.
This are only examples for extproc configuration, your tnsnames.ora and listener.ora can be differs.
FIRST MAKE MAKE A BACKUP OF YOUR ORIGINAL tnsnames.ora AND listener.ora FILES
For more information please check metalink note 68061.1 "EXTPROC: Creating External Procedures on Windows NT"
Bestr Regards
Norbert -
Is it possible to call a windows batch file from PL/SQL block ??
Hi gurus,
Would require your help.Is it possible to call a windows batch file from PL/SQL block ??If yes can you give an example for the same or any workaround for the same.
Regards
VijayYou didn't specify a database version, but if you are 10g or higher, it's quite straightforward using an external job type in DBMS_SCHEDULER. Funnily enough i'm looking at something similar myself at the moment.
Useful guide to some of the issues here Guide to External Jobs on 10g with dbms_scheduler e.g. scripts,batch files -
Run sql query through batch file
how to create a batch file so that on running the batch file,
I should get into the database using username and password and create the table and insert values inside that tablekindly, if you are using windows you can create 2 files as following:
a.bat
b.sql
put the files under spacific folder for example d:\bat folder
-first file a.bat will contain the following:
sqlplus apps/apps@yourdb @d:\bat\B.sql
exit
-second file b.sql will contain any sql statments you want as following:
create table a (a1 number, a2 varchar2(100))
insert into a (a1,a2) values(1,'Test')
commit
exit;
hope this help you
Regards ...
Edited by: shedo76 on 28/04/2012 03:14 ص -
Executing the batch file from SQL Server Agent job
Hi - I have a simple batch file (.bat) which connects the SFTP server and drop the files to location machine. When I run the .bat file manually its working fine but when I schedule it in SQL Agent its keep on running and never shows success message.
Could you please tell me how can i resolve it. Its very urgent for me.
thanksIf you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) Remote working directory is /
When you connect via putty you get prompted to accept a key in interactive mode. At this point your batch file is waiting for someone to type in y or n.
Try running putty in batch mode to get around this.
http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html#6.1.8
6.1.8 -batch: avoid interactive prompts
If you use the -batch option, PSFTP will never give an interactive prompt while establishing the connection. If the server's host key
is invalid, for example (see section 2.2), then the connection will simply be abandoned instead of asking you what to do next.
This may help PSFTP's behaviour when it is used in automated scripts: using -batch, if something goes wrong at connection time, the batch
job will fail rather than hang.
Maybe you are looking for
-
Security service error in OBIEE 11G LDAP configuration
Hello I've recently set up some OBIEE 11G installations and they appear to work ok. I've more recently been using various guides on the internet to configure OBIEE 11G and Active Directory and can see the users and groups within Weblogic that belong
-
XI error: adapter.file.configuration.DynamicConfigurationException
Hi all, I have an scenary of file process between an NFS and an a FTP server. I need these files will conserve these original names, so it's configured with "Adapter-Specific Message Attributes" Options ticked: X-> Use Adapter Specific Message Attrib
-
Published interactive project works in IE but not in Chrome???
My buttons and interactions are working through an Internet Explorer browser, but loose their functionality when play via Chrome. Anyone have any ideas?
-
Will Solaris 2.7 device drivers work in Solaris 2.6
I have three systems running Solaris 2.6 for a customer application. My customer has requested a fourth system. The new system has the newer SCSI host adapter AIC-7890. Solaris 2.6 does not recognize the adapter and will not allow me to boot from the
-
So a friend was looking at some old texts from my girlfriend that mean a lot to me and she erased the conversation on accident. If I restore my iPhone in iTunes will it return all my texts to what they were at my last sync?? Thanks in advance