當前位置:首頁 » 服務存儲 » 存儲過程中怎麼查看錶的信息
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲過程中怎麼查看錶的信息

發布時間: 2022-04-07 06:43:29

❶ 在資料庫中建立存儲過程查詢一張表的所有欄位信息,那麼是不是應該把該表的每個欄位都給一個輸出參數呢

這要看你具體的要求,可以自定義對象,然後返回對象。也可以返回遊標

❷ 怎麼查詢sql 存儲過程裡面的數據

怎麼查詢sql 存儲過程裡面的數據
有時候你沒有辦法使用圖形界面的管理器連接SQL 伺服器,這個時候如果你想查看一個存
儲過程的內容就只能依靠SQL 語句了。
系統提供了一個存儲過程可以查看 rule,stored procere, user-defined function,
trigger, 或者 view。Syntaxsp_helptext @objname = 'name'
sp_helptext '存儲過程名稱'

❸ 如何用pl/sql 查詢存儲過程中用到的表

展開過程的樹

❹ 怎麼用oracle存儲過程查一個表的信息

Oracle 需要通過 返回一個游標來處理。

SQL> create or replace package pkg_HelloWorld as
2 -- 定義ref cursor類型
3 type myrctype is ref cursor;
4 --函數申明
5 function getHelloWorld return myrctype;
6 end pkg_HelloWorld;
7 /

Package created.

SQL> CREATE OR REPLACE package body pkg_HelloWorld as
2 function getHelloWorld return myrctype
3 IS
4 return_cursor myrctype;
5 BEGIN
6 OPEN return_cursor FOR 'SELECT ''Hello'' AS a, ''World'' AS B FROM al';
7 return return_cursor;
8 END getHelloWorld;
9 end pkg_HelloWorld;
10 /

Package body created.

SQL> SELECT pkg_HelloWorld.getHelloWorld FROM al;

GETHELLOWORLD
--------------------
CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

A B
---------- ----------
Hello World

上面的是使用動態SQL處理的。
下面是正常SQL處理的。

SQL> create or replace package pkg_HelloWorld as
2 -- 定義ref cursor類型
3 type myrctype is ref cursor;
4 --函數申明
5 function getHelloWorld return myrctype;
6 end pkg_HelloWorld;
7 /

程序包已創建。

SQL> CREATE OR REPLACE package body pkg_HelloWorld as
2 function getHelloWorld return myrctype
3 IS
4 return_cursor myrctype;
5 BEGIN
6 OPEN return_cursor FOR
7 SELECT 'Hello 1' AS a, 'World 1' AS B FROM al
8 UNION ALL
9 SELECT 'Hello 2' AS a, 'World 2' AS B FROM al;
10 return return_cursor;
11 END getHelloWorld;
12 end pkg_HelloWorld;
13 /

程序包體已創建。

返回遊標的函數,不是 「表值函數」
SQL> SELECT * FROM pkg_HelloWorld.getHelloWorld();
SELECT * FROM pkg_HelloWorld.getHelloWorld()
*
第 1 行出現錯誤:
ORA-00933: SQL 命令未正確結束

SQL> SELECT pkg_HelloWorld.getHelloWorld() FROM al;

PKG_HELLOWORLD.GETHE
--------------------
CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

A B
------- -------
Hello 1 World 1
Hello 2 World 2

❺ oracle中怎麼查詢包中的某個存儲過程中所有用到的表

顯示的可以找到,例如遍歷 程序內容。

隱式的例如 程序里用了view,view里包含了很多表,那麼直接看程序沒用。
必須跑一邊過程,然後TRACE獲得列表,例如10046.

❻ sql中創建存儲過程根據參數查詢並顯示表中數據

創建一個存儲過程 傳學號,然後 存儲過程裡面 寫一個select 按學號查詢的語句就好了。
create porcere 存儲過程名
@學號 varchar(30)

as
begin
select * from student where 學號=@學號

end

❼ sql 存儲過程在多個表中查詢記錄

select * from USB1th where ......

union all
select * from USB2th where ......
union all
select * from USB3th where ......
.
.
.
.

❽ oracle用存儲過程查詢一張表中的信息

Oracle
需要通過
返回一個游標來處理。
SQL>
create
or
replace
package
pkg_HelloWorld
as
2
--
定義ref
cursor類型
3
type
myrctype
is
ref
cursor;
4
--函數申明
5
function
getHelloWorld
return
myrctype;
6
end
pkg_HelloWorld;
7
/
Package
created.
SQL>
CREATE
OR
REPLACE
package
body
pkg_HelloWorld
as
2
function
getHelloWorld
return
myrctype
3
IS
4
return_cursor
myrctype;
5
BEGIN
6
OPEN
return_cursor
FOR
'SELECT
''Hello''
AS
a,
''World''
AS
B
FROM
al';
7
return
return_cursor;
8
END
getHelloWorld;
9
end
pkg_HelloWorld;
10
/
Package
body
created.
SQL>
SELECT
pkg_HelloWorld.getHelloWorld
FROM
al;
GETHELLOWORLD
--------------------
CURSOR
STATEMENT
:
1
CURSOR
STATEMENT
:
1
A
B
----------
----------
Hello
World
上面的是使用動態SQL處理的。
下面是正常SQL處理的。
SQL>
create
or
replace
package
pkg_HelloWorld
as
2
--
定義ref
cursor類型
3
type
myrctype
is
ref
cursor;
4
--函數申明
5
function
getHelloWorld
return
myrctype;
6
end
pkg_HelloWorld;
7
/
程序包已創建。
SQL>
CREATE
OR
REPLACE
package
body
pkg_HelloWorld
as
2
function
getHelloWorld
return
myrctype
3
IS
4
return_cursor
myrctype;
5
BEGIN
6
OPEN
return_cursor
FOR
7
SELECT
'Hello
1'
AS
a,
'World
1'
AS
B
FROM
al
8
UNION
ALL
9
SELECT
'Hello
2'
AS
a,
'World
2'
AS
B
FROM
al;
10
return
return_cursor;
11
END
getHelloWorld;
12
end
pkg_HelloWorld;
13
/
程序包體已創建。
返回遊標的函數,不是
「表值函數」
SQL>
SELECT
*
FROM
pkg_HelloWorld.getHelloWorld();
SELECT
*
FROM
pkg_HelloWorld.getHelloWorld()
*

1
行出現錯誤:
ORA-00933:
SQL
命令未正確結束
SQL>
SELECT
pkg_HelloWorld.getHelloWorld()
FROM
al;
PKG_HELLOWORLD.GETHE
--------------------
CURSOR
STATEMENT
:
1
CURSOR
STATEMENT
:
1
A
B
-------
-------
Hello
1
World
1
Hello
2
World
2

❾ mysql 怎麼查詢存儲過程中用到哪些表

假設A表有3個欄位,ID, DATA1,DATA2
簡單的話可以不使用存儲過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)

如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) > 0;
END
註: in_start, in_end是DATA1的篩選范圍。 後面一個select直接返回一個表

直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入資料庫會被自動編譯運行速度比較快,而SQL是每次執行都需要被編譯一次的。但是存儲過程的調試比較麻煩,不像你使用編程語言和SQL的時候可以單步調試。而且如果沒有熟練掌握存儲過程的效率優化情況下,使用存儲過程可能比使用SQL更慢。

❿ 怎樣查詢存儲過程中用了哪些表

用語句查詢不知道,但可用工具可以實現,安裝toad,打開過程,看Deps(uses)項