# ----------------------------------------------------------------------------- # Start processing. # ----------------------------------------------------------------------------- # Validation. if ($StartTime eq "") { Error($INVALID_START_DATE); } if ($EndTime eq "" ) { Error($INVALID_END_DATE); } unless(IsDate($StartTime)) { Error($INVALID_START_DATE); } unless(IsDate($EndTime)) { Error($INVALID_END_DATE); } $SQL = ""; $SQL = $SQL . "SELECT "; $SQL = $SQL . "to_char(pp.SUBMITTIME, 'YYYY-MM-DD HH:MM:SS') SUBMITTIME, "; $SQL = $SQL . "to_char(pp.QUEUETIME, 'YYYY-MM-DD HH:MM:SS') QUEUETIME, "; $SQL = $SQL . "to_char(pp.PREPTIME, 'YYYY-MM-DD HH:MM:SS') PREPTIME, "; $SQL = $SQL . "to_char(pp.STARTTIME, 'YYYY-MM-DD HH:MM:SS') STARTTIME, "; $SQL = $SQL . "pp.SESSIONID, "; $SQL = $SQL . "pp.PLANID "; $SQL = $SQL . "from "; $SQL = $SQL . "\\\$hist_plan_prolog_1 pp "; $SQL = $SQL . "where "; $SQL = $SQL . "pp.SUBMITTIME between '2014-06-26 05:00' and '2014-06-26 08:00:00' "; $SQL = $SQL . "order by "; $SQL = $SQL . "pp.SUBMITTIME"; print "[SQL]:\n\n\n$SQL\n\n"; @Output = qx { /nz/kit/bin/nzsql -d histdb -c "$SQL" }; $RetCode=$?; chomp(@Output); foreach ( @Output ) { print "$_\n"; } #### SELECT to_char(pp.SUBMITTIME, 'YYYY-MM-DD HH:MM:SS') SUBMITTIME, to_char(pp.QUEUETIME, 'YYYY-MM-DD HH:MM:SS') QUEUETIME, to_char(pp.PREPTIME, 'YYYY-MM-DD HH:MM:SS') PREPTIME, to_char(pp.STARTTIME, 'YYYY-MM-DD HH:MM:SS') STARTTIME, pp.SESSIONID, pp.PLANID from \$hist_plan_prolog_1 pp where pp.SUBMITTIME between '2014-06-26 05:00' and '2014-06-26 08:00:00' order by pp.SUBMITTIME ERROR: 'SELECT to_char(pp.SUBMITTIME, 'YYYY-MM-DD HH:MM:SS') SUBMITTIME, to_char(pp.QUEUETIME, 'YYYY-MM-DD HH:MM:SS') QUEUETIME, to_char(pp.PREPTIME, 'YYYY-MM-DD HH:MM:SS') PREPTIME, to_char(pp.STARTTIME, 'YYYY-MM-DD HH:MM:SS') STARTTIME, pp.SESSIONID, pp.PLANID from $hist_plan_prolog_1 pp where pp.SUBMITTIME between '2014-06-26 05:00' and '2014-06-26 08:00:00' order by pp.SUBMITTIME' error ^ found "$" (at char 261) expecting an identifier found a keyword #### my $SQL1=<<"_SQL1_"; SELECT to_char(pp.SUBMITTIME, 'YYYY-MM-DD HH:MM:SS') SUBMITTIME, to_char(pp.QUEUETIME, 'YYYY-MM-DD HH:MM:SS') QUEUETIME, to_char(pp.PREPTIME, 'YYYY-MM-DD HH:MM:SS') PREPTIME, to_char(pp.STARTTIME, 'YYYY-MM-DD HH:MM:SS') STARTTIME, to_char(pe.ENDTIME, 'YYYY-MM-DD HH:MM:SS') ENDTIME, (DATE_PART('second', pe.ENDTIME - pp.STARTTIME )) Seconds_Execution, pp.SESSIONID, pp.PLANID, sp.SESSIONUSERNAME, pp.ESTIMATEDCOST, pp.ESTIMATEDDISK, pp.ESTIMATEDMEM, pp.TOTALSNIPPETS, pe.RESULTROWS, pp.NPSID, pp.NPSINSTANCEID, pp.OPID, pp.LOGENTRYID from '\$hist_nps_1' ns, '\$hist_session_prolog_1' sp, '\$hist_plan_prolog_1' pp, '\$hist_plan_epilog_1' pe where ns.NPSID = pp.NPSID and ns.NPSID = pe.NPSID and ns.NPSID = sp.NPSID and sp.SESSIONID = pp.SESSIONID and sp.SESSIONID = pe.SESSIONID and pp.OPID = pe.OPID and pp.SUBMITTIME between '$StartTime' and '$EndTime' order by pp.SUBMITTIME _SQL1_ @Output = qx { /nz/kit/bin/nzsql -d histdb -c "$SQL1" }; $RetCode=$?; chomp(@Output); #### ERROR: 'SELECT to_char(pp.SUBMITTIME, 'YYYY-MM-DD HH:MM:SS') SUBMITTIME, to_char(pp.QUEUETIME, 'YYYY-MM-DD HH:MM:SS') QUEUETIME, to_char(pp.PREPTIME, 'YYYY-MM-DD HH:MM:SS') PREPTIME, to_char(pp.STARTTIME, 'YYYY-MM-DD HH:MM:SS') STARTTIME, to_char(pe.ENDTIME, 'YYYY-MM-DD HH:MM:SS') ENDTIME, (DATE_PART('second', pe.ENDTIME - pp.STARTTIME )) Seconds_Execution, pp.SESSIONID, pp.PLANID, sp.SESSIONUSERNAME, pp.ESTIMATEDCOST, pp.ESTIMATEDDISK, pp.ESTIMATEDMEM, pp.TOTALSNIPPETS, pe.RESULTROWS, pp.NPSID, pp.NPSINSTANCEID, pp.OPID, pp.LOGENTRYID from '' ns, '' sp, '' pp, '' pe where ns.NPSID = pp.NPSID and ns.NPSID = pe.NPSID and ns.NPSID = sp.NPSID and sp.SESSIONID = pp.SESSIONID and sp.SESSIONID = pe.SESSIONID and pp.OPID = pe.OPID and pp.SUBMITTIME between '2014-06-26 05:00:00' and '2014-06-26 08:00:00' order by pp.SUBMITTIME ' error ^ found "'" (at char 580) expecting an identifier found a keyword