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 可以为您处理并得到相同结果时,这似乎毫无意义。
我有一个 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'
虽然您可以