데이터 베이스 MySQL 튜토리얼 Oracle存储过程的调用

Oracle存储过程的调用

Jun 07, 2016 pm 04:57 PM
oracle 데이터 베이스

Oracle 表的语句 create table student(sid int,sname varchar(20),sno int)一:无返回值的存储过程 create or replace procedu

Oracle 表的语句

  create table student(sid int,sname varchar(20),sno int)

一:无返回值的存储过程

 create or replace procedure proc_student(para1 Integer, para2 varchar2, para3 Integer)
 is

BEGIN
 insert into student(sid,snam,sno) values (para1,para2,para3);
end ;

public class TestProcedureOne {


 public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
 public static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
 public static final String USERNAEM = "system";
 public static final String PASSWORD = "123";

 public static void main(String[] args)

{

  ResultSet rs = null;
  Connection conn = null;
  CallableStatement proc = null;
  try {
   Class.forName(DRIVER);
   conn = DriverManager.getConnection(URL, USERNAEM, PASSWORD);

   proc = conn.prepareCall("{call system.testc(?,?,?)}");//这里不是PreparedStatement接口,而是调用存储过程的接口

   proc.setInt(1, 1);
   proc.setString(2, "zhangsan");
   proc.setInt(3, 2);//这里的参数是根据sql语句的顺序来的
   proc.execute();

  } catch (SQLException ex2) {
   ex2.printStackTrace();

  } catch (Exception ex2) {
   ex2.printStackTrace();
  } finally {
   try {
    if (rs != null) {
     rs.close();
     if (proc != null) {
      proc.close();
     }
     if (conn != null) {
      conn.close();
     }
    }
   } catch (SQLException ex1) {
   }
  }
 }
}

二:有返回值的存储过程(非列表)

  create or replace procedure proc_student2(para_1 Integer,para_2 out varchar2, para_3 out

  Integer)
   is
 begin
  select snam,sno into para_2,para_3 from student where sid =  para_1;
 end proc_student2 ;

 java的主要代码如下

 proc = conn.prepareCall("{call system.proc_student2(?,?,?)}");

   proc.setInt(1, 1);
   proc.registerOutParameter(2, Types.VARCHAR);//输出参数的类型
   proc.registerOutParameter(3, Types.INTEGER);
   proc.execute();
   System.out.println(proc.getString(2)+proc.getInt(3));

三:返回列表

由于oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用pagkage了.所以要分两部分,

1,, 建一个程序包。如下:

 create or replace package package_1

as

type test_cursor is ref cursor;

end package_1;

2,建立存储过程,存储过程为:

create or replace prcedure proc_student3(stu_cursor out package_1.test_cursor) is

begin

 open stu_cursor for select * from system.student

end

可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。

 java的主要代码如下

   proc = conn.prepareCall("{call system.proc_student3(?)}");
   proc.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
   proc.execute();
   rs = (ResultSet) proc.getObject(1);
   while(rs.next()){
    System.out.println(rs.getInt(1)+rs.getString(2)+rs.getInt(3));
   
   }

linux

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? May 10, 2024 am 03:27 AM

Oracle 데이터베이스 로그의 보존 기간은 다음을 포함한 로그 유형 및 구성에 따라 다릅니다. 재실행 로그: "LOG_ARCHIVE_DEST" 매개변수로 구성된 최대 크기에 의해 결정됩니다. 보관된 리두 로그: "DB_RECOVERY_FILE_DEST_SIZE" 매개변수로 구성된 최대 크기에 따라 결정됩니다. 온라인 리두 로그: 보관되지 않고 데이터베이스를 다시 시작하면 손실되며 보존 기간은 인스턴스 실행 시간과 일치합니다. 감사 로그: "AUDIT_TRAIL" 매개변수로 구성되며 기본적으로 30일 동안 보관됩니다.

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 May 10, 2024 am 04:00 AM

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항: 프로세서: 기본 주파수가 2.5GHz 이상인 멀티 코어, 대규모 데이터베이스의 경우 32개 이상의 코어가 권장됩니다. 메모리: 소규모 데이터베이스의 경우 최소 8GB, 중간 크기의 경우 16~64GB, 대규모 데이터베이스 또는 과도한 작업 부하의 경우 최대 512GB 이상. 스토리지: SSD 또는 NVMe 디스크, 중복성 및 성능을 위한 RAID 어레이. 네트워크: 고속 네트워크(10GbE 이상), 전용 네트워크 카드, 지연 시간이 짧은 네트워크. 기타: 안정적인 전원 공급 장치, 이중 구성 요소, 호환 가능한 운영 체제 및 소프트웨어, 열 방출 및 냉각 시스템.

오라클에는 얼마나 많은 메모리가 필요합니까? 오라클에는 얼마나 많은 메모리가 필요합니까? May 10, 2024 am 04:12 AM

Oracle에 필요한 메모리 양은 데이터베이스 크기, 활동 수준 및 필요한 성능 수준(데이터 버퍼 저장, 인덱스 버퍼, SQL 문 실행 및 데이터 사전 캐시 관리에 필요)에 따라 다릅니다. 정확한 양은 데이터베이스 크기, 활동 수준 및 필요한 성능 수준에 따라 달라집니다. 모범 사례에는 적절한 SGA 크기 설정, SGA 구성 요소 크기 조정, AMM 사용 및 메모리 사용량 모니터링이 포함됩니다.

Oracle 예약 작업은 하루에 한 번 생성 단계를 실행합니다. Oracle 예약 작업은 하루에 한 번 생성 단계를 실행합니다. May 10, 2024 am 03:03 AM

Oracle에서 하루에 한 번 실행되는 예약된 작업을 생성하려면 다음 세 단계를 수행해야 합니다. 작업을 생성합니다. 작업에 하위 작업을 추가하고 해당 일정 표현식을 "INTERVAL 1 DAY"로 설정합니다. 작업을 활성화합니다.

Oracle 데이터베이스를 사용하는 데 필요한 메모리 양 Oracle 데이터베이스를 사용하는 데 필요한 메모리 양 May 10, 2024 am 03:42 AM

Oracle 데이터베이스에 필요한 메모리 양은 데이터베이스 크기, 작업 부하 유형 및 동시 사용자 수에 따라 다릅니다. 일반 권장 사항: 소형 데이터베이스: 16~32GB, 중형 데이터베이스: 32~64GB, 대형 데이터베이스: 64GB 이상. 고려해야 할 다른 요소로는 데이터베이스 버전, 메모리 최적화 옵션, 가상화 및 모범 사례(메모리 사용량 모니터링, 할당 조정)가 있습니다.

Oracle 데이터베이스에는 얼마나 많은 메모리가 필요합니까? Oracle 데이터베이스에는 얼마나 많은 메모리가 필요합니까? May 10, 2024 am 02:09 AM

Oracle 데이터베이스 메모리 요구 사항은 데이터베이스 크기, 활성 사용자 수, 동시 쿼리, 활성화된 기능 및 시스템 하드웨어 구성 등의 요소에 따라 달라집니다. 메모리 요구 사항을 결정하는 단계에는 데이터베이스 크기 결정, 활성 사용자 수 추정, 동시 쿼리 이해, 활성화된 기능 고려 및 시스템 하드웨어 구성 검사가 포함됩니다.

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

오라클에서 듣기 프로그램을 시작하는 방법 오라클에서 듣기 프로그램을 시작하는 방법 May 10, 2024 am 03:12 AM

Oracle 수신기는 클라이언트 연결 요청을 관리하는 데 사용됩니다. 시작 단계에는 다음이 포함됩니다. Oracle 인스턴스에 로그인합니다. 리스너 구성을 찾으십시오. lsnrctl start 명령을 사용하여 리스너를 시작하십시오. lsnrctl status 명령을 사용하여 시작을 확인합니다.

See all articles