Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Passing a FILENAME from a LINUX SHELL Script to an SQLPLUS Script

ParadicePGMRMay 8 2012 — edited May 17 2012
I written a LINUX Shell Script to receive a FILENAME. This FILENAME is the name of the file that I want to SPOOL into.

So, below are two items.

The first item is the LINUX Shell Script that has the FILENAME

The last item is the SQLPLUS Script that is suppose to receive the name

The LINUX Shell Script:

#! /bin/sh
LOGFILE="$(date +"%Y-%m-%d %H:%M") Oracle REPORT LOG.TXT"
FILENAME="$(date +"%Y-%m-%d") PROD Unfinished Spot Bids.CSV"
echo "File Name for the spool is:" "$FILENAME"
#spool "$FILENAME"
#sqlplus /nolog @run_test_query.sql
#sqlplus -S @Unfinished_Spot_Bids_Run_V1.sql >$LOGFILE
sqlplus -S /nolog <<EOF >$LOGFILE
/* I want to pass to the SQL file below */
/* The value that is contained in the the variable $FILENAME */
/* How do you do that? */
@@Unfinished_Spot_Bids_V1.sql
spool
set echo on
EOF
RV=$?
#if {$RV -ne 0}
#exit $RV
#else
echo "The return code fronm the sqlplus was:" "$RV"
#fi

Here is the SQLPLUS Script
CONNECT glog_read/parker@OTMPROD
set linesize 32000 trimspool on pagesize 3000
set echo off
SET TERMOUT OFF
set heading off
/* I want to parameterize the name of the file below */
/* This file is executed from inside a LINUX Shell Script */
/* That LINUX SHELL script is passed a file name */
/* I want that filename used in the "SPOOL" statement below */
/* So, how do I do that? */
spool PROD_Unfinished.CSV
prompt Shipment Update Date|Shipment Number|No of Shipments|Auctions per Shipment|No. of Carriers Notified|No of Bidders|Duration of Auction|Elapse time for first bid|Elapse time for last bid|Elapse time of bidding|Lead Time of Auction to P/U|High Bid- Low Bid Diff|
set feedback off
SELECT
to_char(c.update_date, 'FMMonth, YYYY')||'|'|| b.SHIPMENT_GID
||'|'|| count (distinct (b.SHIPMENT_GID))
||'|'|| count(distinct(a.i_transaction_no))
||'|'|| count(*)
||'|'|| sum (case when a.responding_gl_user_gid is null then 0 else 1 end)
||'|'|| min (numtodsinterval((b.expected_response - b.insert_date),'day'))
||'|'|| min (numtodsinterval((a.update_date - a.transaction_time),'day'))
||'|'|| max (numtodsinterval((a.update_date - a.transaction_time),'day'))
||'|'|| numtodsinterval((max(a.update_date) - min(a.update_date)),'day')
||'|'|| numtodsinterval((max(b.shipment_time) - max(c.insert_date)),'day')
||'|'|| (max(a.bid_amount) - min(a.bid_amount))
from tender_collab_servprov a, tender_collaboration b, shipment c
where a.i_transaction_no = b.i_transaction_no
and b.shipment_gid not in (select sqa.shipment_gid from tender_collaboration sqa, tender_collab_servprov sqb where sqa.i_transaction_no = sqb.i_transaction_no and sqb.acceptance_code = 'A')
and a.i_transaction_no in (select i_transaction_no from tender_collaboration where tender_type = 'Spot Bid')
and b.shipment_gid = c.shipment_gid
AND c.update_date >= trunc(last_day(to_date((to_char(add_months(SYSDATE,-2), 'MM-DD-YYYY')),'MM-DD-YYYY')) + 1)
group by c.update_date, b.SHIPMENT_GID
order by c.update_date, b.shipment_GID;
spool off
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 11 2012
Added on May 8 2012
8 comments
3,363 views