oracle 如何选择带引号的字段?

7tofc5zh  于 2023-10-16  发布在  Oracle
关注(0)|答案(4)|浏览(157)

我试图选择几个字段并将它们括在引号内,因为我必须将这些记录导出到平面文件中,然后将它们插入到另一个数据库中。所以我在Oracle上运行这些查询,并且在尝试添加这些引用时遇到了麻烦。这是我尝试运行的查询:

  1. SELECT
  2. 'connection_string' || '|' ||
  3. ''' || employee_name || '''
  4. FROM
  5. table1

我想要的输出是:

  1. 'connection_string'|'Bob'
  2. 'connection_string'|'Jane'

我也试过

  1. SELECT
  2. 'connection_string' || '|' ||
  3. '' || employee_name || ''
  4. FROM
  5. table1

这显然是行不通的connection_string是静态的,保持不变,结果应该由管道分隔

xriantvc

xriantvc1#

你只是在输出中寻找单引号吗?如果是:

  1. SELECT '''' || 'connection_string' || '''|''' ||
  2. employee_name || ''''
  3. FROM table1;

一行中的两个单引号--在一个字符串中--表示一个单引号。或者,换句话说,对于一个带单引号的字符串,你需要一行四个:

  1. ''''
  2. ^ starts the string
  3. -^^ the single quote
  4. ---^ ends the string
odopli94

odopli942#

你是说像这样吗在SCOTT模式中使用EMP表。

  1. select ename, '''connection_string''|''' || ename || ''''
  2. from scott.emp;
  3. ENAME '''CONNECTION_STRING''|'''||ENAM
  4. ---------- --------------------------------
  5. SMITH 'connection_string'|'SMITH'
  6. ALLEN 'connection_string'|'ALLEN'
  7. WARD 'connection_string'|'WARD'
  8. JONES 'connection_string'|'JONES'
  9. MARTIN 'connection_string'|'MARTIN'
  10. BLAKE 'connection_string'|'BLAKE'
  11. CLARK 'connection_string'|'CLARK'
  12. SCOTT 'connection_string'|'SCOTT'
  13. KING 'connection_string'|'KING'
  14. TURNER 'connection_string'|'TURNER'
  15. ADAMS 'connection_string'|'ADAMS'
  16. JAMES 'connection_string'|'JAMES'
  17. FORD 'connection_string'|'FORD'
  18. MILLER 'connection_string'|'MILLER'
展开查看全部
mfuanj7w

mfuanj7w3#

另一种方法是使用Q syntax

  1. SQL> with tableA(a) as (
  2. 2 select 'aaa' from dual union all
  3. 3 select 'AAA' from dual
  4. 4 )
  5. 5 select q'[Your string ']' || a || q'[']' as A
  6. 6 from tableA;
  7. A
  8. -----------------
  9. Your string 'aaa'
  10. Your string 'AAA'

在这种情况下,它可能有点多余,但在更复杂的情况下可能很有用。

bnl4lu3b

bnl4lu3b4#

  1. select listagg( '''' || TESTNAME || '''',',') from test;

这将导致单引号中的数据,所有测试名称由逗号分隔并包含在单引号中

相关问题