sql - 甲骨文 |查询输出以分号分隔

标签 sql oracle select syntax-error

我正在将 Oracle 表中的一些值假脱机到 .csv 文件。每个值必须用分号分隔。我从中检索数据的查询如下所示:

select TEST1|| ';' ||
to_char(BATCH_DATE,'DD/MM/YYYY')|| ';' ||
to_char(START_TIME,'DD/MM/YYYY HH24:MI:SS') || ';'||
to_char(END_TIME,'DD/MM/YYYY HH24:MI:SS')  || ';'||
INPUT
from TEST_TABLE
where to_char(BATCH_DATE,'YYYYMM') = to_char(sysdate,'YYYYMM')-1
and TEST1='ENGLISH'
order by TEST1,BATCH_DATE desc;

虽然这很神奇,但我还想在 INPUT 末尾有一个分号。

我期望(并尝试过)这样的事情:

   select TEST1|| ';' ||
    to_char(BATCH_DATE,'DD/MM/YYYY')|| ';' ||
    to_char(START_TIME,'DD/MM/YYYY HH24:MI:SS') || ';'||
    to_char(END_TIME,'DD/MM/YYYY HH24:MI:SS')  || ';'||
    INPUT  || ';'||
    from TEST_TABLE
    where to_char(BATCH_DATE,'YYYYMM') = to_char(sysdate,'YYYYMM')-1
    and TEST1='ENGLISH'
    order by TEST1,BATCH_DATE desc;

但是它不起作用,它给出了ORA-00936:缺少表达式。

最佳答案

您的选择列表末尾有一个冗余连接运算符 (||):

select TEST1|| ';' ||
to_char(BATCH_DATE,'DD/MM/YYYY')|| ';' ||
to_char(START_TIME,'DD/MM/YYYY HH24:MI:SS') || ';'||
to_char(END_TIME,'DD/MM/YYYY HH24:MI:SS')  || ';'||
INPUT  || ';'
-- || removed ^
from TEST_TABLE
where to_char(BATCH_DATE,'YYYYMM') = to_char(sysdate,'YYYYMM')-1
and TEST1='ENGLISH'
order by TEST1,BATCH_DATE desc;

顺便说一句,您没有提到如何进行假脱机,但如果您使用 SQL*Plus,您可以只设置列分隔符,而不必搞乱连接:

-- separate columns with a semicolon  
set colsep ;

spool myfile.csv

-- Straight forward query, no concatination required:
select   TEST1,
         to_char(BATCH_DATE, 'DD/MM/YYYY')
         to_char(START_TIME, 'DD/MM/YYYY HH24:MI:SS')
         to_char(END_TIME, 'DD/MM/YYYY HH24:MI:SS')
         input
  from   TEST_TABLE
  where  to_char(BATCH_DATE, 'YYYYMM') = to_char(sysdate, 'YYYYMM') - 1 and
         TEST1='ENGLISH'
order by TEST1, BATCH_DATE desc;

spool off

关于sql - 甲骨文 |查询输出以分号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46297290/

相关文章:

database - 只从数据库中选择一些行

php - 我的查询出了什么问题,导致我无法插入变量中的值和另一个表中的值?

MySQL 按 3 列排序或 UNION 它们

mysql - 我如何在 SQL 中引用保留字以便它适用于所有常见的数据库系统?

ruby-on-rails - Ruby - Oci8 - 行类型调用函数不起作用

sql - Oracle SQL,使用 &input 的 SELECT 子句

mysql - 如何在 MySQL 中将变量中存储的值写入 CSV

database - Spring JDBC BeanPropertyRowMapper 是 否 ('Y' ,'N' ) 到 boolean bean 属性

css - 添加类以选择标签

php - 10 个随机的 MySQL 行到不同的行