oracle如何编译过程,Oracle编程

Oracle使用merge into 编写存储过程 遇编译错误:PL/SQL: ORA-00926: 缺失 VALUES 关键字

Oracle使用merge into 编写存储过程 遇编译错误,是设置错误造成的,解决方法如下:

创新互联建站主营罗城网站建设的网络公司,主营网站建设方案,App定制开发,罗城h5重庆小程序开发搭建,罗城网站营销推广欢迎罗城等地区企业咨询

1、首先新建存储过程,Create or Replace  Procedure CHK_SYS_EMP 检查系统工号。

2、定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。

3、存储过程框架用Begin开始,End结束。

4、查看需要调用表的结构以及相关字段。会用到表中的 EMP_NO ENABLED。

5、存储过程按需添加SQL语句,最后程序运行测试没问题就完成了 。

oracle中如何批量编译视图和存储过程

1.批量编译存储工程的存储过程

create or replace procedure compile_invalid_procedures(

p_owner varchar2 -- 所有者名称,即 SCHEMA) as--编译某个用户下的无效存储过程

str_sql varchar2(200);begin

for invalid_procedures in (select object_name from all_objects

where status = 'INVALID' and object_type = 'PROCEDURE' and owner=upper(p_owner))loop

str_sql := 'alter procedure ' ||invalid_procedures.object_name || ' compile';begin

execute immediate str_sql;exception

--When Others Then Null;

when OTHERS Then

dbms_output.put_line(sqlerrm);end;end loop;end;

2.批量编译视图的存储过程

如何重编译ORACLE数据库的无效对象

Oracle中出现无效对象,就是因为在创建函数或存储过程等,里边的内容书写不正确导致。如果要重新编译,需要先修正错误,然后编译。

工具:Oracle 10g、PL/SQL

步骤:

1、在PL/SQL中打开出现编译错误的函数或存储过程,这里以存储过程为例。

2、右键点击该存储过程,选择“编辑”。

3、根据错误提示,找到错误,并修改错误。

4、改正错误后,点击左上方的“齿轮”状按钮。

5、运行成功后,则该存储过程就会变为编译成功的状态。

如何在Oracle中重编译所有无效的存储过程

:在SQL_PLUS中:spool ExecCompProc.sql select 'alter procedure ' ||object_name||' compile;' From all_objects where status = 'INVALID' and object_type = 'PROCEDURE'; spool off @ExecCompProc.Sql;整理成一个存储过程:Create Or Replace Procedure Zl_Compile_Invalid_Procedure AsStrsql Varchar2(200);BeginFor x In (Select Object_Name From All_Objects Where Status = 'INVALID' And Object_Type = 'PROCEDURE') LoopStrsql := 'Alter Procedure ' || x.Object_Name || ' Compile';Begin Execute Immediate Strsql; Exception--When Others Then Null; When OTHERS Then dbms_output.put_line(Sqlerrm); End;End Loop;End;最后执行:exec Zl_Compile_Invalid_Procedure;如果要看到无法重编译的过程的出错信息,需要执行前设置set serverout on。

oracle数据库如何编译sqc文件

//通过编写的连接类创建一个连接

dbconn db = new dbconn();

Connection con1 = db.conn;

String callSQL1 = new String();

ResultSet rs1 = null;

//创建一个CallableStatement变量st1来调用存储过程信息

CallableStatement st1 = null;

try {

st1 = con1.prepareCall("{ call p(?,?,?,?) }");

st1.setString(1, "参数1");

st1.setString(2, "参数2");

st1.setString(3, "参数3");

st1.registerOutParameter(4,Types.INTEGER); //此处4 代表第一个"?" 则表示存储过程返回的值 这里要注意Types的类型,当需要有返回值时

st1.execute();

System.out.println(st1.getInt(4));//输出存储过程的返回值,当有返回值时

} catch (Exception error) {

try {

con1.rollback(); //操作不成功则回退

} catch (Exception ex9) {

ex9.printStackTrace();

}

out.print("系统出错" + error.getMessage());

} finally {

try {

if (st1 != null) {

st1.close();

}

} catch (Exception error) {

}

db.disconnect();

}

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

sqlplus有相关的了命令:比如alter procedure prodedure_name compile;

第一次编译的时候只要在后面加一个/当做执行符号,那么就可以进行编译。


文章名称:oracle如何编译过程,Oracle编程
文章路径:http://hbruida.cn/article/hdpoeo.html