您不能在SQL語句中執行特殊/控制字符。語句在執行前經過分析和驗證,如果語句無效,則會引發異常。
這是許多可能的方法之一。
[...]
sqlStatement="SELECT foo FROM bar WHERE dar = 'stuff' "
sqlStatement = strClean(sqlStatement)
Set recordset = connection.Execute (sqlStatement, RecordsAffected, Options)
[...]
Function strClean (strtoclean)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(strtoclean, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "-")
strClean = outputStr
End Function
從替換功能: http://www.code-tips.com/2009/04/vbscript-string-clean-function-remove.html
在您的特定情況下,在錯誤的基礎觀察。
ORA-06550:行1,列616:PL/SQL:ORA-00917:錯過逗號 ORA-06550:行1,列359:PL/SQL:SQL語句忽略 ORA-06550:線1,列717:PLS-00103:遇到符號 「文件結束」時,期待以下某項操作:
通過打印傳遞給'execute'的SQL語句的內容來調試您的語句。
此外,檢查「第1行,第359列」,您在那裏缺少逗號(或SQL語句中的其他錯誤令解析器混淆)。
你已經發現問題了。我們無法前往您的工作場所爲您刪除文件結尾字符。清理你的代碼。而'我能夠通過sqlplus運行相同的查詢'並不是理由,這與您在ASP中使用的解釋器/驅動程序不同。我並不是想要表達自己的意思,但似乎你正在對你的代碼固執而不會注意到它。 =) –
@ Ricardo ..謝謝。但是,我需要這裏的幫助是我不能去替換那些特殊字符(替換命令)。因爲我以批處理模式加載數據,所以查詢是動態派生的。我發現這兩個特殊字符現在在我的數據中。我可以手動處理它們。將來,我想處理所有的例外情況。再次感謝。 – msiva1989
還有一點意見要補充,Oracle可以接受這些值。只有我的Vbscript沒有處理這個字符。我已經將字符集更改爲unicode-8,它沒有工作。 – msiva1989