重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
public class DBHelper {
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站制作、漾濞网络推广、小程序设计、漾濞网络营销、漾濞企业策划、漾濞品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供漾濞建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
//封装四个参数
//把属性私有化:隐藏属性, 静态:让静态属性能在静态方法使用,常量:让这些属性不能被修改
private static final String DRIVER ="oracle.jdbc.driver.OracleDriver";
private static final String URL = "jdbc:oracle:thin://localhost:1521/orcl";
private static final String USER = "jdbcuser";
private static final String PASSWORD = "123456";
//1.注册驱动2.建立连接
public static Connection openConnection(){
Connection conn=null;
try {
Class.forName(DRIVER);
conn =DriverManager.getConnection(URL,USER,PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//6.关闭连接,释放资源
public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
//这是一个标准的关闭动作,以后可这样写
if(rs !=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stmt !=null){
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句
集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数
(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要
对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后
存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,
若干个有联系的过程可以组合在一起构成程序包。
优点:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。
proc = connection.prepareCall("{ call SIM_MEDICARE.P_Isinblacklist(?,?,?,?,?) }");
proc.setString(1, “”);设置传入参数
proc.registerOutParameter(4, Types.VARCHAR);注册传出参数
proc.execute();执行过程
proc.getString(4)获取结果
查看Oracle的dba用户创建的directories:select * from dba_directories;--select * from all_directories;查看表空间使用的数据文件位置:select name from v$datafile;查看临时表空间使用的数据文件位置:select name from v$tempfile;查看dba用户创建的表空间数据文件位置:select file_name from dba_data_files;查看dba用户创建的临时表空间数据文件位置:select file_name from dba_temp_files;当然,查看dba用户的相关信息时需要登录有dba权限的数据库用户
相信你知道level在递归查询中的意思,除了level之外,还有一个伪列:CONNECT_BY_ISLEAF。你可以在输出的列中间加上CONNECT_BY_ISLEAF这个列,将会发现CONNECT_BY_ISLEAF为1的全是叶子节点,也就是你说的最底层。
让每个用户安装oracle客户端,这并不是不可以接受的
或者你可以使用oracle instant client 来完成部署(这样就不用安装完整的oracle客户端)。
这个是FORM定义了关系后自动生成的代码
IF reldef = 'FALSE' THEN
Go_Block(detail);
Check_Package_Failure;(哪个block 不成功了?) --看FORM自定义的程序单元
:System.Message_Level := '10';
Execute_Query;(执行的是哪里的查询)--执行DETAIL BLOCK的查询,看DETAIL定义的查询条件
:System.Message_Level := oldmsg;(怎么给oldmsg赋值?)这个不是给OLDMSG赋值,而是把OLDMSG的值赋给:System.Message_Level
ELSE
Set_Block_Property(detail, COORDINATION_STATUS, NON_COORDINATED);
END IF;
Procedure Check_Package_Failure IS
BEGIN
IF NOT ( Form_Success ) THEN
RAISE Form_Trigger_Failure END IF;;(这个不就是上面的Check_Package_Failure吗,直接引用不行吗) --封装,直接引用当然可以,但是这种更好
END;
你最后面的修改完全不知所云
EXCEPTION是ORACLE的异常
NOT ( Form_Success ) 是FORM的异常,两者不等同
Form_Trigger_Failure是抛出FORM的异常,中止之后所有活动
另外再说一下,这个是FORM自己生成的代码,除非你有特殊要求,否则不用改动