[英]SQL select query for creating a stored procedure doesn't work in 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.