我需要使用sqlplus从Oracle中的表中调整csv.以下是所需的格式:
"HOST_SITE_TX_ID","SITE_ID","SITETX_TX_ID","SITETX_HELP_ID"
"664436565","16","2195301","0"
"664700792","52","1099970","0"
Run Code Online (Sandbox Code Playgroud)
以下是我写的shell脚本的相关部分:
sqlplus -s $sql_user/$sql_password@$sid << eof >> /dev/null
set feedback off
set term off
set linesize 1500
set pagesize 11000
--set colsep ,
--set colsep '","'
set trimspool on
set underline off
set heading on
--set headsep $
set newpage none
spool "$folder$filename$ext"
select '"'||PCL_CARRIER_NAME||'","'||SITETX_EQUIP_ID||'","'||SITETX_SITE_STAT||'","'||SITETX_CREATE_DATE||'","'||ADVTX_VEH_WT||'"'
from cvo_admin.MISSING_HOST_SITE_TX_IDS;
spool off
Run Code Online (Sandbox Code Playgroud)
(我已经使用了一些注释声明来表示我尝试但无法工作的事情)
我收到的输出是:
'"'||PCL_CARRIER_NAME||'","'||SITETX_EQUIP_ID||'","'||SITETX_SITE_STAT||'","'||SITETX_CREATE_DATE||'","'||ADVTX_VEH_WT||'"'
"TRANSPORT INC","113","00000000","25-JAN-13 10.17.51 AM",""
"TRANSPORT INC","1905","00000000","25-JAN-13 05.06.44 PM","0"
Run Code Online (Sandbox Code Playgroud)
这表明标题搞砸了 - 它实际上是打印应该被解释为sql语句的整个字符串,就像显示的数据一样.
我正在考虑的选项:
1)使用colsep
set colsep '","'
spool
select * from TABLE
spool off
Run Code Online (Sandbox Code Playgroud)
这引入了其他问题,因为具有前导和尾随空格的数据,文件中的第一个和最后一个值不用引号括起来 …