Select 查询结果 returns 没有斜线的值

Result for a Select query returns values without Slash

我有一个 Oracle 数据库,我 运行 在 SQL 开发人员中作为

查询
select C_VALUE from master where SECTION='val1' and KEY='val2'

我得到的结果如下:

E:\folder1\file1

那个查询returns我一个文件夹路径如上。

现在的实际问题是,每当我从我的 VBScript ASP 项目 运行 查询时,我得到的值如下:

E:folder1file1

如果您注意到没有斜杠 ()。 我不知道为什么会这样。 我从我的 VBScript 代码 运行ning 查询如下:

strSQL = ""
strSQL = strSQL & "SELECT C_VALUE" 
strSQL = strSQL & " AS SelectedCol" 
strSQL = strSQL & " FROM MASTER" 
strSQL = strSQL & " WHERE SECTION = 'val1'"
strSQL = strSQL & " AND KEY='val2'" 
set objRs = objDb.CreateDynaset(strSQL, 4) 
result = objRs("SelectedCol")

这里 result 的值是 E:folder1file1 没有斜杠的。

谁能告诉我为什么会这样?

你可以试试这个

首先更改脚本

select REPLACE (C_VALUE, '\', '#') from master where SECTION='val1' and KEY='val2'

然后你可以再次替换#到vb

中的\

发生这种情况的原因是因为在 Oracle 中反斜杠 \ 用作 Escape Character。这意味着它不仅被输出,而且具有特殊含义 (紧跟在反斜杠后面的字符被转义) 之后被丢弃。

您可以像这样转义 (\) 来忽略转义字符;

SELECT REPLACE(C_VALUE, '\', '\') AS SelectedCol
FROM MASTER 
WHERE SECTION='val1' AND KEY='val2'

虽然您可以 这需要代码中的另一个步骤再次用反斜杠替换被替换的字符。当 SQL 可以为您处理并得到相同结果时,这似乎毫无意义。