网站不能访问的情况应该如果预防和自我检查
2010-05-05 22:51
369 查看
1.首先建立名为pro_query_dept的存储过程 CREATE OR REPLACE PROCEDURE pro_query_dept ( p_deptno IN dept.deptno%TYPE, p_dname OUT dept.dname%TYPE ) --声明区 AS --执行区 BEGIN SELECT dname INTO p_dname FROM dept WHERE deptno = p_deptno; IF p_dname = 'SALES' THEN p_dname := '销售部门'; ELSE p_dname := '未知部门'; END IF; DBMS_OUTPUT.put_line (p_dname); --异常处理 EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLCODE || SQLERRM); END; 测试存储过程: Sql代码--测试 DECLARE v_dname dept.dname%TYPE; BEGIN pro_query_dept (30, v_dname); END; java类源代码: package com.sun.myjdbc; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; public class TestC { public static void test1(){ try { // 加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "scott"; String password = "tiger"; Connection conn = DriverManager.getConnection(url, user, password); String sql = "{call pro_query_dept(?,?)}"; // 创建一个过程的分析容器 CallableStatement cst = conn.prepareCall(sql); // 设置输入参数 cst.setInt(1, 30); // 定义输出类型 cst.registerOutParameter(2, Types.VARCHAR); // 执行存储过程 cst.execute(); // 提取存储过程输出 String value = cst.getString(2); System.out.println(value); cst.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { test1(); } } 2.调用函数 建立名为func_query_dept的函数 CREATE OR REPLACE FUNCTION func_query_dept ( p_dname OUT dept.dname%TYPE, p_deptno IN dept.deptno%TYPE ) RETURN VARCHAR2 --声明区 AS --执行区 BEGIN SELECT dname INTO p_dname FROM dept WHERE deptno = p_deptno; IF p_dname = 'SALES' THEN p_dname := '销售部门'; ELSE p_dname := '未知部门'; END IF; RETURN 'OK'; --异常处理 EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLCODE || SQLERRM); RETURN 'ERROR'; END; 测试代码: DECLARE v_dname dept.dname%TYPE; v_result varchar2(20); BEGIN v_result := func_query_dept (v_dname, 30); dbms_output.put_line(v_result); END; java类调用函数 public void test2(){ try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "scott"; String password = "tiger"; Connection con = DriverManager.getConnection(url, user, password); String sql = "{?= call FUNC_QUERY_DEPT(?,?)}"; CallableStatement cst = con.prepareCall(sql); cst.registerOutParameter(1,Types.VARCHAR); cst.registerOutParameter(2,Types.VARCHAR); cst.setInt(3, 30); cst.execute(); System.out.println(cst.getString(1)); System.out.println(cst.getString(2)); con.close(); }catch(Exception e){ e.printStackTrace(); } } 3.测试游标 首先建立一个包: CREATE OR REPLACE PACKAGE pack_dept IS TYPE cur IS REF CURSOR; END; 然后有两种方式返回一个游标 方式一: CREATE OR REPLACE PROCEDURE pro_find_dept (my_cur OUT pack_dept.cur) IS BEGIN OPEN my_cur FOR SELECT * FROM dept; END; 方式二: CREATE OR REPLACE PROCEDURE pro_find_dept (my_cur OUT sys_refcursor) IS BEGIN OPEN my_cur FOR SELECT * FROM dept; END; 最后我们的java调用类 public void test3(){ try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user = "scott"; String password = "tiger"; Connection con = DriverManager.getConnection(url, user, password); String sql = "{call pro_find_dept(?)}"; CallableStatement cst = con.prepareCall(sql); cst.registerOutParameter(1, OracleTypes.CURSOR); cst.execute(); //如何拿到输出的值 ResultSet rs = (ResultSet)cst.getObject(1); while(rs.next()){ System.out.println(rs.getString(2)); } rs.close(); cst.close(); con.close(); }catch(Exception e){ e.printStackTrace(); } }
开发者博客:www.developsearch.com
相关文章推荐
- 京东PK苏美当天为何苏宁易购出现服务器无法访问的情况?苏宁易购的网站技术架构是什么(软件+硬件)?出现此突发情况,如果你是技术负责人该如何应对?
- [转]通过HTML网页检测网站是否能够访问,如果不能访问则报警。
- 网站后台不能添加图片,如果是服务器权限问题,应该如何解决?方法如下
- 如果连接在同一交换机的两主机不能互相访问,一般的检查步骤?
- ASP.NET Webform或者ASP.NET MVC站点部署到IIS下,默认情况下.json文件是不能被访问的,如果请求访问.json文件,则会出现找不到文件的404错误提示
- 服务器上发布的网站应用80端口时内网可以访问,外网不能访问
- 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(
- SSH链接后不能访问国外网站问题
- IIS7错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")......
- 远程用户不能访问IIS发布的网站
- Node.js~在linux上的部署~外网不能访问node.js网站的解决方法
- [技术分享] 20110803,Web 代理客户端通过 TMG ISA 不能访问新浪微博等网站
- [致歉]DNS服务器的问题造成网站不能正常访问
- 访问网站报错“配置错误 不能在此路径中使用此配置节”
- [apache]用shell分析网站的访问情况
- 邮箱网站不能用mail.xxx.com:8888的方式访问原因
- Chrome在某些网站可能会遇到使用flash时上传文件对话框不能弹出的情况解决方法
- 对于java文件不能访问的情况分析
- Ubuntu下部分网站不能正常访问的解决方法
- 最近一个朋友的网站进行迁移,出现不能同步登录的情况。