好吧,这是位的一个模糊的问题,但是希望有人可以帮我的。

系统,我正在构建一个动态SQL串为执行内部存储的过程和动态SQL定义列的别名,其本身实际上价值从另一个表用户生成的数据。

因此,例如,串可能看起来像;

SELECT table1.Col1 AS "This is an alias" FROM table1

这一工作正常。然而,值是使用别名可能包含一个双人的报价符,这会破坏外的报价。我认为我也许可以逃脱双引号内的别名以某种方式,但是我有没有运气如何这样做。反斜杠不会的工作,并使用两个双引号中的行结果,在这种错误;

SQL Error: ORA-03001: unimplemented feature
03001. 00000 -  "unimplemented feature"
*Cause:    This feature is not implemented.

有任何人有任何经验与这个问题吗?欢呼声的任何见解的任何人。

p.s.该报价需要周围的别名,因为它们可以包含空间。

有帮助吗?

解决方案

可以你只要把另一个字代替双引号和替换双引号的代码?

事情是这样的:

SELECT table1.Col1 AS "This is |not| an alias" FROM table1

然后就替换|"。

我知道这是一个破解但我想不出任何更好解决方案...和你在做什么还有一个黑客无论如何。"好"的方法将是选择的价值和单独列名和联系他们在你的代码。这会使事情更清洁。

其他提示

使用Oracle报价,操作员:

select q'#someone's quote#' from dual;

该'#'可代替的任何角色

当我运行这样的:

select 'test"columnname"' from dual

Oracle返回本(通知Oracle产生的列名):

'TESTCOLUMNNAME'
--------------------------------
test"columnname

事实上,Oracle列的名字不包括我的双引号告诉我,Oracle可能无法代表。

最好的赌注就我看到的是一条双行情从你的数据之前采用的列名。可悲的是,这也将需要你做同样的筛选时的你 选择 那些列,但是我看不到另一种方式。

一个可能卓有成效的区域调查能够看到价方法。

我的$quotedString=$dbh->的报价($string);

试试这个,两个单一的报价,实际上看起来像一个双人的报价在输出:
select 1 as "University ''John Smith''" from dual;

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top