【发布时间】:2017-12-02 07:03:58
【问题描述】:
所以我在 SL/SQL 中有这个查询:
DECLARE
UNI VARCHAR(250);
NI VARCHAR(250);
NOME VARCHAR(250);
POSTOO VARCHAR(250);
FINALMENTE VARCHAR(250);
BEGIN
SELECT UNIDADE INTO UNI FROM OWNDB2.T_UNIDADES WHERE SIGUNIDADE = 'DAGI';
SELECT NII INTO NI FROM OWNDB2.T_UNID_CARGO WHERE UNIDADE = UNI AND DETALHE = 'C00';
select NOME INTO NOME from owndb2.t_BASEPES where nii = NI;
select POSTO INTO POSTOO from owndb2.t_BASEPES where nii = NI;
select DESPOSTO INTO FINALMENTE from owndb2.t_CODPOSTO where POSTO = POSTOO;
END;
我在 PL/SQL 中运行此查询,它给了我想要查看的内容,但是当我将此查询粘贴到 Asp.net C# 中时,它只会给出一个错误,指出该查询的语法不正确。 是的,我要连接的数据库是一个 Oracle 数据库,该查询是我在 ASP.Net 项目中使用的数据库的表。
这是我将查询放入 ASP.Net 的方式:
"DECLARE" +
"UNI VARCHAR(250);" +
"NI VARCHAR(250);" +
"NOME VARCHAR(250);" +
"POSTOO VARCHAR(250);" +
"FINALMENTE VARCHAR(250);" +
"BEGIN" +
"SELECT UNIDADE INTO UNI FROM OWNDB2.T_UNIDADES WHERE SIGUNIDADE = 'DAGI';" +
"SELECT NII INTO NI FROM OWNDB2.T_UNID_CARGO WHERE UNIDADE = UNI AND DETALHE = 'C00';" +
"SELECT NOME INTO NOME from owndb2.t_BASEPES where nii = NI;" +
"SELECT POSTO INTO POSTOO from owndb2.t_BASEPES where nii = NI;" +
"SELECT DESPOSTO INTO FINALMENTE from owndb2.t_CODPOSTO where POSTO = POSTOO;" +
"END;"
为什么查询在 PL/SQL 和 ASP.Net 中运行良好,只是给我一个不正确的语法错误?
PS:我只是插入查询,因为这是我遇到的问题,我没有在其后面插入所有的Sqlconnections和sql命令,但查询是我的问题,希望大家理解。
【问题讨论】:
-
看看空格就知道了。现在你的查询看起来像
DECLAREUNI VARCHAR(250);NI VARCHAR(250); ... POSTOO;END; -
“是的,我要连接的数据库是 Oracle 数据库” - 那你为什么要添加 SQL Server 标记?
-
您希望收到什么输出?它似乎填充了一些局部变量,然后结束。