簡體   English   中英

查詢在PL / SQL上運行,但不在ASP.NET上運行

[英]Query runs on PL/SQL but doesn't run on ASP.NET

所以我在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命令,但是查詢是我的問題,我希望你們能理解。

C#代碼中的SQL語句缺少空格。
現在,您的查詢看起來像DECLAREUNI VARCHAR(250);NI VARCHAR(250); ... POSTOO;END; DECLAREUNI VARCHAR(250);NI VARCHAR(250); ... POSTOO;END;

"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;"

應該可以解決問題,或者通過@"string"將其放入一個長字符串文字中

string query = @"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;"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM