当前位置:首页 » 服务存储 » 存储过程中怎么查看表的信息
扩展阅读
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)项