导航:首页 > 源码编译 > 哪些命令可以编译存储过程

哪些命令可以编译存储过程

发布时间:2022-07-04 09:05:02

‘壹’ LINUX下,对ORACLE数据库脚本(比如存储过程或是触发器)进程编译,用哪个命令

sqlplus里
@${filename}

showerror -- 查看编译错误

‘贰’ 如何使用命令方式修改存储过程的定义、

一是仅仅只调用存储过程:如果需要排除该语句,则在要执行的语句批中,这种对存储过程的调用需要作为批中的第一条语句。
二是使用exec命令:如果在一个批中,存储过程的调用是第二个或后续的语句,则需要在存储过程前使用exec语句作为前缀。如果在另一个存储过程中调用该存储过程,则同样需要使用exec命令作为前缀。

‘叁’ oracle 中用什么命令执行一个带参数的存储过程

具体如下:

1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。

‘肆’ 什么是存储过程用什么来调用

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。

‘伍’ 可以用dos命令调用执行plsql存储过程吗

要成功执行这个存储过程,你需要注意几点:
1.select * from ods_area; 不能直接在pl/sql 中作为语句执行。
应该用 select 字段 into plsql变量 from 表名;
的形式来获取表中的数据,保存到plsql变量中。

2. 存储过程的语法格式为:
create or replace procere area
is
--变量声明;
begin
--过程主体;
end area;
3. 如果存储过程代码无误,可以通过 "/" 来执行代码,编译存储过程。
4.通过exec 或 execute 来调用编译后的存储过程。

例如:

-- 创建procere:
create or replace procere area
is
num number ;
v_areaRecord al%ROWTYPE;
begin
--例子1
select * into v_areaRecord from al;
--例子2
select 12345 into num from al;
end area;
/
-- 通过 / 执行;

--调用
exec area;

‘陆’ 如何编写存储过程

//创建存储过程

CREATE PROCEDURE userData(

IN id INT

)

BEGIN

SELECT * from userdata WHERE userflag = id;

END;

其中IN是传进去的变量;

drop procere userData;//销毁这个存储过程。

call userData(2) //调用存储过程。

(6)哪些命令可以编译存储过程扩展阅读:

sql中的存储过程及相关介绍:

CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]

[(参数#1,…参数#1024)]

[WITH

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

]

[FOR REPLICATION]

AS 程序行

其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数

(SQL Server 7.0以上版本),参数的使用方法如下:

@参数名数据类型[VARYING] [=内定值] [OUTPUT]。

每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。

[内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数。

同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。

参考资料来源:网络-储存过程



‘柒’ 用什么命令可以重新编译所有的存储过程

这是我同事做的一个存储过程,我们一般都用这个处理
CREATE OR REPLACE PROCEDURE OWN.P_HSJ_COMPRE
IS
CURSOR cur_invalid_obj IS
SELECT uo.object_name,uo.object_type
FROM user_objects uo,
USER_ORDER_OBJECT_BY_DEPEND uobd
WHERE uo.object_id = uobd.object_id(+) AND uo.status != 'VALID'
ORDER BY uobd.dlevel desc,uo.object_type,uo.object_name;
ls_objname VARCHAR2(100);
ls_objtype VARCHAR2(100);
ls_status VARCHAR2(20);
ls_text VARCHAR2(4000);
ls_sql varchar2(100);
BEGIN
OPEN cur_invalid_obj;
LOOP
FETCH cur_invalid_obj INTO ls_objname,ls_objtype;
EXIT WHEN cur_invalid_obj%NOTFOUND;
IF ls_objtype IN ('PACKAGE BODY', 'PACKAGE', 'FUNCTION', 'PROCEDURE','TRIGGER', 'VIEW') THEN
if ls_objtype ='VIEW' then
ls_sql :=' ALTER VIEW '||LS_OBJNAME ||' COMPILE';
execute immediate ls_sql;
else
DBMS_DDL.alter_compile(ls_objtype,NULL,ls_objname);
end if;
SELECT status INTO ls_status FROM user_objects
WHERE object_name = ls_objname AND object_type = ls_objtype;
/* IF ls_status != 'VALID' THEN
SELECT text INTO ls_text FROM user_errors
WHERE name = ls_objname AND type = ls_objtype;
END IF;
*/
END IF;
END LOOP;
CLOSE cur_invalid_obj;
EXCEPTION
WHEN OTHERS THEN
IF cur_invalid_obj%ISOPEN THEN
CLOSE cur_invalid_obj;
END IF;
END;
/

‘捌’ Oracle有没有命令可以编译存储过程

sqlplus有相关的了命令:比如alter procere prodere_name compile;
第一次编译的时候只要在后面加一个/当做执行符号,那么就可以进行编译。

阅读全文

与哪些命令可以编译存储过程相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:581
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:428
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:352