在最后一行打印文字“执行”; - 行数总是不同的

时间:2012-11-09 12:54:27

标签: sql oracle oracle10g

这是我生成批处理文件的SQL代码

SELECT    'CANCEL_TRANS trans WITH serial = "'
   || serial
   || '" , short_name = "'
   || short_name
   || '";'
FROM trans
WHERE ( (trans.status = 0))
   AND TO_TIMESTAMP (time_created, 'YYYY/MM/DD-HH24:MI:SS.FF') <
          SYSDATE - 1 / 24
   AND platform_name LIKE '%test%';

输出

(总是不同的行数)

CANCEL_TRANS trans WITH serial = "507760" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507761" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507781" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507782" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507785" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507786" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507880" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507883" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507884" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507886" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507976" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507964" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507967" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507971" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "507762" , short_name = "BD";
CANCEL_TRANS trans WITH serial = "508096" , short_name = "BD";

我希望在最后一行打印此字符串/文字。希望用SQL(而不是shell脚本)来做到这一点:

execute;

2 个答案:

答案 0 :(得分:2)

使用UNION ALL

SELECT ...
UNION ALL
SELECT 'execute;' from dual

答案 1 :(得分:0)

您使用此代码:

SELECT top 1 'CANCEL_TRANS trans WITH serial = "' || serial 
              || '" , short_name = "' || short_name || '";' 
  FROM trans 
 WHERE trans.status = 0
   AND TO_TIMESTAMP(time_created, 'YYYY/MM/DD-HH24:MI:SS.FF') < SYSDATE - 1 / 24 
   AND platform_name LIKE '%test%' order by serial desc;