當前位置:首頁 » 編程語言 » 兩個參數的sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

兩個參數的sql

發布時間: 2022-10-02 15:28:53

㈠ java語言,jdbcTemplate.queryForMap查詢,如何傳入兩個參數到sql

1、使用Map<String,Object> jdbcTemplate.queryForMap查詢,其返回結果必須有且只有1個map值,否則會拋出異常。若拋出異常,則肯定不會得到返回值。

例如「控制台提示錯誤Incorrectresultsize:expected1,actual 0」。

問題原因參考(1)字元串的Jdbctemplate查詢::結果大小不正確:預期1,實際0網頁鏈接

問題原因參考(2)JdbcTemplate queryForObject結果大小不正確:預期為1,實際為0網頁鏈接

2、推薦使用jdbcTemplate.query或List<Map<String,Object>>jdbcTemplate.queryForList查詢。

/**
*
*@Title:querySpxxMap_dbBySsflbm
*@Description:TODO(根據稅收分類編碼、企業id,聯查商品信息表、稅收分類編碼表的,商品id+商品名稱+規格型號+計量單位+稅率+稅收分類編碼)
*@paramssflbm
*@paramqyid
*@return設定文件
*@returnMap<String,Object>返回類型
*@throws
*/
publicList<Map<String,Object>>querySpxxMap_dbBySsflbm(Stringssflbm,Stringqyid){
Stringsql="selectspxx.id,spxx.spmc,spxx.ggxh,spxx.jldw,ss.slv,ss.hbbmssflbm"
+"fromt_jc_ssflbmss"
+"leftjoint_qy_spxxspxxonspxx.ssflbm=ss.hbbm"
+"wheress.hbbm=?andspxx.qyid=?";
//queryForList參數寫法1
List<Object>conditionList=newArrayList<Object>();
conditionList.add(ssflbm);
conditionList.add(qyid);
List<Map<String,Object>>list1=jdbcTemplate.queryForList(sql,conditionList.toArray());
//queryForList參數寫法2
List<Map<String,Object>>list2=jdbcTemplate.queryForList(sql,newObject[]{ssflbm,qyid});
returnlist1;
}

㈡ sql語句雙參數傳遞

看type表中的欄位類型:
如果d_type(或d_order)是字元型(varchar)或日期型(datetime)就要加'',及...d_type='"&request.Form("d_type") &"' and....
如果d_type(或d_order)是數值型(int,float,numeric,decimal)就按你原來的寫不需要加''

㈢ sql 存儲過程 傳入兩組數組參數

declare@nnvarchar(500)
declare@mnvarchar(500)
set@n='1,2,3,4,5'
set@m='a,b,c,d,e'

createtable#tb(nVARCHAR(500),mVARCHAR(500))
while(1=1)
begin
if(Charindex(',',@n)=0andCharindex(',',@m)=0)
begin
insertinto#tbvalues(@n,@m)
break
end
insertinto#tbvalues(Substring(@n,1,Charindex(',',@n)-1),Substring(@m,1,Charindex(',',@m)-1))
set@n=Right(@n,Len(@n)-Charindex(',',@n))
set@m=Right(@m,Len(@m)-Charindex(',',@m))
end

select*from#tb

droptable#tb

ps:要做好校驗!

㈣ 怎樣用PL/SQL編寫帶兩個參數的函數

既然叫PL/SQL 那就oracle的吧:
CREATE OR REPLACE PROCEDURE orderno_check(
orderno_in VARCHAR(100)--欄位不清楚什麼類型的,你自己改吧
)
AS
DECLARE
ostatus_tmp CHAR(1)--欄位不清楚什麼類型的,你自己改吧
BEGIN
ostatus_tmp:=' ';
SELECT ostatus INTO ostatus_tmp FROM 表名 WHERE orderno=orderno_in;
IF ostatus_tmp='p' THEN
DELETE FROM 表名 WHERE orderno=orderno_in;
ELSE
DBMS_OUTPUT.put_line('該訂單已確認,無法刪除');
END IF;
END;
/

說明,要想看到輸出語句一定要打開控制台輸出
SET serveroutput ON;

---
以上,希望對你有所幫助。

㈤ C#中帶2個參數的SqlCommand對象的使用方法

這是和SQL資料庫相關的一個方法,用來執行SQL語句的,有兩個 參數,第一個是要執行的SQL命令,字元串類型的,第二個是SQL連接,是SqlConnection類型的,你最後一個cmd.Parameters.Add();是添加參數用的,你執行的內容應該是存儲過程.我們資料庫內容不同,舉的例子你運行不成功的,可以把大致的用法告訴你,你自己改一下:

SqlConnection conn=new SqlConnection(@"....你自己機子和資料庫的連接字元串");比如: SqlConnection conn = new SqlConnection(@"Data Source=yh\sqlexpress;Initial Catalog=CashFlow;Integrated Security=True");

string SqlStr="你要執行的命令";
SqlCommand cmd=new SqlCommand(SqlStr,conn);
cmd.CommandType=CommandType.StoredProcere;
SqlParameter p=new SqlParameter(@參數的名稱,SqlType.參數的類型,長度);
比如: SqlParameter line_Name = new SqlParameter("@line", SqlDbType.NVarChar, 10);

p.Direction=ParameterDirection.Input;
p.value="xxx";
cmd.Parameters.Add(p);
conn.Open();
cmd.ExceuteNonQuery();
conn.Close();

這就是一次完整的資料庫執行過程,打得很辛苦,給分吧,不明白的可以問我.

㈥ SQL取兩個值計算然後定義其屬於的范圍,應該怎麼寫存儲過程語句

call sp_add();
是不是你定義的過程有問題吧,並沒有指出返回結果來
像我這樣是可以的:

CREATE PROCEDURE sp_add(a int, b int,out c int)
begin

set c=a+ b;

end;
調用過程:
call sp_add (1,2,@a);
select @a;

㈦ SQLSERVER里的動態sql語句最多2個輸出參數嗎

--買課人數:當日買課人數,本周買課人數,當月買課人數,當季買課人數
ALTER PROC [dbo].[Report_CustomerClassCourseOrder_BuyClass_SP]
@FreeData DATE ,
@FranchiseeID INT ,
@DayBuyClass INTEGER OUTPUT ,
@SumDayBuyClass INTEGER OUTPUT ,
@WeekBuyClass INTEGER OUTPUT ,
@SumWeekBuyClass INTEGER OUTPUT ,
@AprilBuyClass INTEGER OUTPUT ,
@SumAprilBuyClass INTEGER OUTPUT ,
@QuarterBuyClass INTEGER OUTPUT ,
@SumQuarterBuyClass INTEGER OUTPUT,
@YesterdayBuyClass INTEGER OUTPUT, ---昨天
@SumYesterdayBuyClass INTEGER OUTPUT, ---昨天
@LastweekBuyClass INTEGER OUTPUT,--Last week上周
@SumLastweekBuyClass INTEGER OUTPUT,--Last week上周
@LastmonthBuyClass INTEGER OUTPUT,--上月
@SumLastmonthBuyClass INTEGER OUTPUT,--上月
@LastquarterBuyClass INTEGER OUTPUT,--上季度
@SumLastquarterBuyClass INTEGER OUTPUT--上季度
AS

你看這有幾個了

㈧ 怎樣用PL/SQL編寫帶兩個參數的函數

既然叫PL/SQL
那就oracle的吧:
CREATE
OR
REPLACE
PROCEDURE
orderno_check(
orderno_in
VARCHAR(100)--欄位不清楚什麼類型的,你自己改吧
)
AS
DECLARE
ostatus_tmp
CHAR(1)--欄位不清楚什麼類型的,你自己改吧
BEGIN
ostatus_tmp:='
';
SELECT
ostatus
INTO
ostatus_tmp
FROM
表名
WHERE
orderno=orderno_in;
IF
ostatus_tmp='p'
THEN
DELETE
FROM
表名
WHERE
orderno=orderno_in;
ELSE
DBMS_OUTPUT.put_line('該訂單已確認,無法刪除');
END
IF;
END;
/
說明,要想看到輸出語句一定要打開控制台輸出
SET
serveroutput
ON;
---
以上,希望對你有所幫助。

㈨ SQL中存儲過程如果有兩個參數,如何接收這兩個返回值

存儲過程的參數有三類:
輸入參數、輸出參數和輸入輸出參數,具體是什麼參數,看看你的存貯過程試怎麼定義
輸入參數是不會有返回的,只有後面兩個才會有返回

㈩ 在sql存儲過程中有兩個參數

declare @datestart varchar(6), --傳的參數
@dateend varchar(6), -- 傳的參數
@result nvarchar(max),
@monthNumber int,
@result1 nvarchar(8)
set @datestart='201109'
set @dateend='201212'
set @result=@datestart+' '
select @monthNumber=DateDiff(m,convert(datetime,@datestart+'01'),convert(datetime,@dateend+'01'))
select @monthnumber
declare @i int
set @i=1
while @i<=@monthnumber
begin
select @result1=convert(varchar(6),dateadd(m,@i,convert(datetime,@datestart+'01')),112)
set @i=@i+1
set @result=@result+@result1+' '
end
select @result
上邊的可以實現你所要的功能的,,頂二樓,,參考二樓寫的,,如果要改為存儲過程,,你只需把上邊的代碼改改就行的,,對於起始時間和結束時間的判斷,,你可以再後台代碼中實現,,也可以在存儲過程中實現,,只需要使用if else就行了