當前位置:首頁 » 編程語言 » sql函數返回結果集
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql函數返回結果集

發布時間: 2023-07-14 17:29:06

『壹』 Oracle動態sql返回單條結果和結果集

DDL 和 DML

前巧/*** DDL ***/

begin

EXECUTE IMMEDIATE drop table temp_ ;

EXECUTE IMMEDIATE create table temp_ (name varchar ( )) ;

end;

/*** DML ***/

declare

v_ varchar ( );

v_ varchar ( );

str varchar ( );

begin

v_ := 測試人員 ;

v_ := 北京 ;

str := INSERT INTO test (name address) VALUES (: : ) ;

EXECUTE IMMEDIATE str USING v_ v_ ;

mit;

end;

返回單條結果

declare

str varchar ( );

c_ varchar ( );

r_ test%rowtype;

begin

c_ := 測試人員 ;

str:= select * from test where name=:c WHERE ROWNUM= ;

execute immediate str into r_ using c_ ;

DBMS_OUTPUT PUT_LINE(R_ NAME||R_ ADDRESS);

end ;

返回結果集

CREATE OR REPLACE package pkg_test as

/* 定義ref cursor類型

不加return類型 為弱類型 允許動態sql查詢

否則為強類型 無法使用動態sql查詢;

*/

type myrctype is ref cursor;

函數申明

function get(intID number) return myrctype;

end pkg_test;

/

慧含鍵CREATE OR REPLACE package body pkg_test as

函數體

function get(intID number) return myrctype is

rc myrctype; 定義ref cursor變數

sqlstr varchar ( );

begin

if intID= then

靜態測試 直接用select語句直接返回結果

open rc for select id name sex address postcode birthday from student;

else

動態sql賦值 用:w_id來申明該變數從外部獲得

sqlstr := select id name sex address postcode birthday from student where id=:w_id ;

動態測試 用sqlstr字元串返回結果 用using關鍵詞傳遞參數

老扮open rc for sqlstr using intid;

end if;

return rc;

end get;

end pkg_test;

lishixin/Article/program/Oracle/201311/17186

『貳』 sql中如何通過存儲過程返回結果集

引用
4

oraclefans_
的回復:想麻煩了。。你直接返回遊標就是一個結果集合。。CREATE
OR
REPLACE
PROCEDURE
USP_RETN_VAL(
RETN_VAL_CUR
OUT
sys_refcursor)ISBEGIN
OPEN
RETN_VAL_CUR
FOR
SELECT
*
FROM
TBL1;END;調用declare
cur
sys_refcurso……謝謝
但是我是想執行一個存儲過程後,直接返回表裡所有數據,不要再去操作游標。

『叄』 SQLSERVER,一條SQL語句返回查詢結果集和全表記錄數

你可以只用這一條SQL
select * from Table

然後用mysql_num_rows() 獲取記錄數

『肆』 關於java中拼接sql,表名作為參數,返回結果集怎麼接 [問題點數:30分]

通常通過SQL查詢語句查出來的結果集封裝在ResultSet對象中,然後我們會這樣處理:
把ResultSet對象中的數據取出來並封裝在javabean中,所以我們需要這樣寫(我假設這里的javabean是Student.java 裡面有private String name和private int id兩個屬性 ,當然你需要生成對應的getter和setter方法)
while(rs.next()){
Student s=new Student();
s.setName(rs.getString("name"));
s.setId(rs.getInt("id"));
return s;
}

這樣就把相應的數據封裝進javabean對象中了,當然還有一種簡便的方法是用Apache開源組織的dbUtils工具 詳看API 這個太多不好說

『伍』 關於SQL語句Select返回,是結果集還是單一值

關於返回什麼,是由你的select 語句後面的語句決定,最終呈現的是什麼?

例如 :select * from table 返回的肯定是一個結果集
例如:select top 1 name from table 返回的就是一個單一的具體name對應的值了

『陸』 SQL COUNT 值 返回 0

sql 中 count()作用是返回結果集的記錄數。
返回0,即
1、檢索結果記錄數為0
2、指定列非空記錄為0

1、SQL COUNT() 語法
SQL COUNT(column_name) 語法
COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入):
SELECT COUNT(column_name) FROM table_name

2、SQL COUNT(*) 語法
COUNT(*) 函數返回表中的記錄數:
SELECT COUNT(*) FROM table_name

3、SQL COUNT(DISTINCT column_name) 語法
COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目:
SELECT COUNT(DISTINCT column_name) FROM table_name

注釋:COUNT(DISTINCT) 適用於 ORACLE 和 Microsoft SQL Server,但是無法用於 Microsoft Access。

『柒』 求助,sqlserver2005存儲過程如何返回這樣的結果集

部署CLR存儲過程
上面的示例代碼需要進行編譯才能通過存儲過程來調用。在命令行中執行下面的命令來編譯這些代碼並創建類庫DLL MSSQLTipsCLRLib.dll:
CSC/target:libraryStoredProceres.cs/out:MSSQLTipsCLRLib.dll
假設你使用的是Microsoft .NET框架的第二版本,那麼你可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目錄下看到CSC.EXE。
執行下面的T-SQL腳本來創建這個存儲過程:
ALTERDATABASEmssqltips

FROM'C:\mssqltips\MSSQLTipsCLRLib.dll'
WITHPERMISSION_SET=EXTERNAL_ACCESSGOCREATEPROCEDUREdbo.GetListOfFiles
@pathNVARCHAR(256)
,@patternNVARCHAR(64)
,@.StoredProceres.GetListOfFiles
在編譯了這個代碼到類庫(.dll)之後,CREATE ASSEMBLY命令就被執行了,它將這個DLL與ASSEMBLY資料庫對象關聯起來。FROM條件從句必須指向DLL的實際路徑。PERMISSION_SET必須設置為EXTERNAL_ACCESS,因為.NET代碼將訪問SQL Server 之外的文件系統。TRUSTWORTHY選項被設置為on,以允許外部訪問。最後,CREATE PROCEDURE命令的EXTERNAME NAME將這個集合、類和函數與這個存儲過程名稱關聯起來。
要執行這個存儲過程,執行下面的腳本:
EXECdbo.GetListOfFiles'C:\mssqltips','*.*',0
你將看到類似於下面的輸出,這取決於你選擇的文件夾的內容;例如,一個只有一列、每一行是一個文件的結果集:圖2接下來的步驟
在這里下載示例腳本並執行從一個CLR存儲過程返回結果集。
記住,當在Microsoft .NET框架中有滿足你需求的函數時,使用SQL Server的CLR可能是個很好的解決方法。