`

java显示dbms_output信息

阅读更多
import java.sql.*;

class DbmsOutput {

	public DbmsOutput(Connection conn) throws SQLException {
		enable_stmt = conn.prepareCall("begin dbms_output.enable(:1); end;");
		disable_stmt = conn.prepareCall("begin dbms_output.disable; end;");

		show_stmt = conn
				.prepareCall("declare "
						+ "    l_line varchar2(4000); " //set the buffer size to max
						+ "    l_done number; "
						+ "    l_buffer long; "
						+ "begin "
						+ "  loop "
						+ "    exit when length(l_buffer)+255 > :maxbytes OR l_done = 1; "
						+ "    dbms_output.get_line( l_line, l_done ); "
						+ "    l_buffer := l_buffer || l_line || chr(10); "
						+ "  end loop; " + " :done := l_done; "
						+ " :buffer := l_buffer; " + "end;");
	}



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestOracle {

	/**
	 * @param args
	 */
	public static void main(String args[]) throws SQLException {
		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

		Connection conn = DriverManager.getConnection(
				"jdbc:oracle:thin:@localhost:1521:orcl", "username", "password");
		conn.setAutoCommit(false);

		Statement stmt = conn.createStatement();

		DbmsOutput dbmsOutput = new DbmsOutput(conn);
		dbmsOutput.enable(1000000);

		stmt.execute("begin p1.test_output(400);p1.test_output(400);p1.test_output(400);  end;");
		stmt.close();

		dbmsOutput.show();
		dbmsOutput.close();

		conn.close();
	}

}



CREATE OR REPLACE
PACKAGE BODY P1
AS
PROCEDURE test_output(
  times   IN NUMBER
  )
AS
  str varchar2(4000);
BEGIN
  for x in 1..times loop
    str := str || ' hello' || x;    
  end loop;
  dbms_output.put_line('result:' || str);  
END test_output;
END P1;
分享到:
评论

相关推荐

    Oracle PL/SQL常用47个工具包

    1. **DBMS_OUTPUT**: 这个包用于在服务器端生成调试信息,通过设置缓冲区大小和启用输出,开发者可以在执行过程中打印变量和调试消息。 2. **DBMS_ALERT**: 提供异步通知服务,允许一个进程向其他进程发送警报,常...

    oracle pl/sql 开发api

    使用DBMS_OUTPUT.PUT和DBMS_OUTPUT.PUT_LINE可以将信息写入缓冲区,然后通过调用DBMS_OUTPUT.GET_LINE或DBMS_OUTPUT.GET_LINES读取并显示这些信息。这在没有图形界面的环境中尤其有用,帮助开发者跟踪和调试代码。 ...

    java数据库文件txt

    这段代码展示了如何使用PL/SQL中的`DBMS_OUTPUT.PUT_LINE`过程来输出文本“Hello World”。 ### 6. 变量的声明与使用 #### 6.1 基本数据类型 - `NUMBER`: 数字类型。 - `CHAR`: 字符串类型,固定长度。 - `VARCHAR2...

    oracle调用java包

    DBMS_OUTPUT.PUT_LINE('Result: ' || result); END; ``` 四、安全性和性能考虑 1. 安全性:在调用Java代码时,应确保授予了适当的权限,避免潜在的安全风险。 2. 性能:虽然Oracle支持直接执行Java代码,但相比...

    oracle判断表名是否存在

    DBMS_OUTPUT.PUT_LINE('Table does not exist.'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Table does not exist.'); END; / ``` 4. **使用`DBMS_METADATA.GET_DDL`包**: 这...

    Oracle-API.zip

    例如,TO_CHAR 函数用于将数字转换为字符串,而 DBMS_OUTPUT.PUT_LINE 则用于在服务器端输出调试信息。此外,还有用于处理数组、集合、记录以及对象类型的相关函数。 "SQL和Oracle通解"部分则涵盖了 SQL(结构化...

    Oracle 8i Supplied PL/SQL Packages Reference

    - **示例**:通过`DBMS_OUTPUT.PUT_LINE`可以输出一行文本到客户端。 4. **DBMS_LOCK** - **功能**:提供了锁管理功能,用于实现并发控制和事务管理。 - **示例**:`DBMS_LOCK.REQUEST`可以请求一个锁,直到...

    用Java编写Oracle数据库存储过程

    DBMS_OUTPUT.PUT_LINE(message); END; / ``` 以上就是使用Java编写Oracle数据库存储过程的基本步骤。需要注意的是,为了保证安全性,你需要对Java代码进行适当的权限控制,并确保Java代码在数据库环境中正确运行。...

    【中文】【精通Oracle.10g.Pl.SQL编程】

    DBMS_OUTPUT.PUT_LINE(v_employee.first_name || ' ' || v_employee.last_name); END LOOP; CLOSE c_employees; END; ``` 以上就是关于Oracle 10g PL/SQL编程的一些基础知识和高级特性介绍。通过学习和掌握这些...

    PLSQL练习题及答案

    DBMS_OUTPUT.PUT_LINE(V_A||' '||V_B); END; ``` 练习 2: 编写一个匿名块,查询工资超过 2000 的职务是 CLERK 职工的姓名,如果超过一人,则打印错误信息,其他错误也要捕获。 ``` DECLARE V_ENAME VARCHAR2(10)...

    oracle存储过程学习经典[语法+实例+调用]

    DBMS_OUTPUT.PUT_LINE('Account ID: ' || v_accounts.account_id); END LOOP; CLOSE c_accounts; END; ``` #### 四、在存储过程中使用动态SQL 在某些情况下,可能需要在存储过程中执行动态SQL语句。这可以通过...

    PL-SQL 从入门到精通 经典技术

    DBMS_OUTPUT.PUT_LINE('ID=' || v_id || ' name=' || v_name); END; / ``` 4. **使用 %TYPE**:`%TYPE` 是一种特殊的数据类型,它可以自动获取已有字段的数据类型,简化变量定义。 ```sql DECLARE v_id TEST...

    Oracle_的存储过程及游标

    DBMS_OUTPUT.PUT_LINE('数据被发现并删除,影响的行数为:' || SQL%ROWCOUNT); END IF; END; ``` - 显式游标需要通过`DECLARE CURSOR`定义,例如: ```sql DECLARE CURSOR myCur IS SELECT * FROM emp WHERE ...

    如何从Oracle的存储过程中访问操作系统的资源.pdf

    例如,你可以创建一个Java类用于遍历目录树和读取文件信息: ```java import java.io.File; import java.sql.SQLException; public class OSAccess { public static void listDirectoryTree(String path) throws ...

    犀利的 oracle 注入技术

    在此文中,`DBMS_OUTPUT.PUT`被用于传递动态生成的Java代码片段。 #### 三、技术实现细节 1. **构造注入语句**: - 利用逻辑错误(如`'1'<>'a'`)作为条件,确保只有当注入的语句被执行时才返回异常结果,从而...

    java和oracle中如何输出金字塔和镂空金字塔

    但是,你可以通过编写存储过程并利用DBMS_OUTPUT.PUT_LINE函数来达到目的。以下是一个简单的例子,展示如何在Oracle PL/SQL中构建3层金字塔: ```sql DECLARE layers NUMBER := 3; BEGIN FOR i IN 1..layers LOOP...

    Oracle触发器里调用Java程序

    最后,为了调试和优化,可以利用Oracle的DBMS_OUTPUT包来查看触发器执行时的输出,或者通过日志记录功能将Java方法的输出写入数据库表或其他日志文件。 总结起来,通过在Oracle触发器中调用Java程序,我们可以利用...

    oracle常规练习

    DBMS_OUTPUT.PUT_LINE('ename=' || e_name); END; ``` - **功能**: 此存储过程接收一个输出参数`as_name`,查询`emp`表中`emp_id`为1的员工名字,并将其赋值给输出参数。 - **调用示例**: 由于未提供具体的调用方法...

    java-oracle中几十个实用的PLSQL

    从给定的文件信息中,我们可以总结出一系列与Java、Oracle以及PL/SQL相关的知识点,主要聚焦于数据库操作和程序设计。以下是对这些知识点的详细解释: ### 1. 显示特定员工的详细信息 在Oracle数据库中,通过使用...

Global site tag (gtag.js) - Google Analytics