database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 2207 게시물 읽기
No. 2207
Re: pl/sql에 대해
작성자
ora_man
작성일
2000-11-28 16:49
조회수
4,317

아래와 같이 하면 되지 않을까요 ?

 

======================================================================

DECLARE

TYPE 배열_선언 IS TABLE OF NUMBER(8)

INDEX BY BINARY_INTEGER; 배열이름 배열_선언;

 

TYPE 배열_선언1 IS TABLE OF REAL(5,2)

INDEX BY BINARY_INTEGER; 배열이름1 배열_선언1;

...

get_a CHAR(7);

BEGIN

배열이름(1) := 1000;

배열이름(2) := 2000;

---

배열이름1(1) := 1.5;

배열이름1(2) := 1.25;

배열이름1(3) := 9.5;

...

get_a:= '&001'; -- &001,&002,... 파라미터로 받는 내용

...

END;

===========================================================================

 

>>속터짐 님께서 쓰시길<<

 

:: 안녕하십니까 오라클를 배우는 학생입니다.

:: pl/sql상에서 배열를 어떻게 선언하는지 알려주세용.

:: 또

::

:: begin

:: .

:: .

:: .

:: accept name prompt "이름을 입력해주세요"

:: .

:: .

:: .

:: end;

::

:: pl/sql에서 accept 가 가능한지요 만약 가능하지 않으면 어떻게

:: 사용자에게서 값을 받는지 알고 싶습니다.

이 글에 대한 댓글이 총 1건 있습니다.


CREATE TABLE CUSTOMER (
 customreg varchar2(14) NOT NULL,
 cname varchar2(25) NOT NULL,
 phone varchar2(20),
 PRIMARY KEY (customreg));

CREATE TABLE ACCOUNT (
 accountno number(10) NOT NULL,
 customreg varchar2(14),
 adate date,
 atype varchar2(20),
 abalance number(15),
 PRIMARY KEY (accountno),
 FOREIGN KEY (customreg) REFERENCES customer(customreg));

CREATE TABLE TRADING (
 tradeno number(14) NOT NULL,
 accountno number(10) NOT NULL,
 ttype varchar2(20),
 tdate date,
 tmoney number(15),
 PRIMARY KEY (tradeno),
 FOREIGN KEY (accountno) REFERENCES account(accountno)); 



이 테이블 생성에 대해....


프로시저 실행하는 대화형 스크립트...



CREATE SEQUENCE S_tradeno
INCREMENT BY 1
START WITH 1
maxvalue 99999999999999
noCACHE
NOCYCLE  ;

CREATE SEQUENCE S_accountno
INCREMENT BY 1
START WITH 1
maxvalue 9999999999
noCACHE
NOCYCLE ;

 

CREATE OR REPLACE PROCEDURE Create_account

(       NAME customer.cname%TYPE

       ,MANNO customer.customreg%TYPE

      ,PHONE customer.phone%TYPE

      ,v_atype  number(1)

      ,AMOUNT trading.tmoney%TYPE


     
      )

IS
 
    
 CURR_DATE DATE;
    
 ACCOUNTNO account.accountno%TYPE;

 DEALNO trading.TRADENO%TYPE;

 dup_val_on_index EXCEPTION;

 TEMP NUMBER(1);

BEGIN

     SELECT COUNT(*) INTO TEMP FROM customer WHERE customreg = MANNO;

     IF TEMP > 0 THEN
  RAISE dup_val_on_index;

     END IF;

    SELECT SYSDATE INTO CURR_DATE FROM DUAL;

-- 다른 유저가 시퀀스를 사용할 수 있으므로....

    SELECT S_accountno.NEXTVAL INTO ACCOUNTNO FROM DUAL;

    SELECT S_tradeno.NEXTVAL INTO DEALNO FROM DUAL;

    INSERT INTO customer VALUES (MANNO, NAME, PHONE);

   
   if v_atype = '1'  then

     INSERT INTO account VALUES (ACCOUNTNO, MANNO, CURR_DATE, '보통예금' , AMOUNT);

   elsif v_atype = '2' then

     INSERT INTO account VALUES (ACCOUNTNO, MANNO, CURR_DATE, '정기예금' , AMOUNT);

   else raise dup_val_on_index ; 

   end if;

   INSERT INTO trading VALUES (DEALNO, S_accountno.CURRVAL, '입금', CURR_DATE, AMOUNT);

  commit;

EXCEPTION

    WHEN dup_val_on_index THEN

    dbms_output.put_line('이미 등록된 고객입니다.');

END;

/

위 내용은... 계좌 개설 프로시저임..

이것을......



set verify off
SET SERVEROUTPUT ON

begin
dbms_output.put_line('은행 계좌를 생성하겠습니다.');
end;


ACCEPT cr1 PROMPT '고객의 이름을 입력하시오 :'
ACCEPT cr2 PROMPT '고객의 주민등록번호를 입력하시오(예.000000-0000000) :'
ACCEPT cr3 PROMPT '전화번호를 입력하시오(예.000-0000-0000) :'
ACCEPT cr4 PROMPT '거래하실 계좌의 종류의 번호를 입력하시오(보기☞ 1.보통예금 2.정기예금) :'
ACCEPT cr5 PROMPT '계좌를 여는데 최소한의 금액(5000)을 입급하셔야합니다. 입금하실 금액을 입력하시오 :'

exec create_account('&&cr1','&&cr2','&&cr3','&&cr4',&&cr5);

/

로 ....입력 받아서 값을 줄수 있음......ㅋㅋㅋ 잘 돌아감.....

윤재열(zaety)님이 2006-12-08 15:44에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2177오라클8
초보녀
2000-11-27
3498
2174tablespace에서 파일 추가하는 명령어에 대한 질문입니다.
이운형
2000-11-27
3244
2176┕>Re: tablespace에서 파일 추가하는 명령어에 대한 질문입니다.
초이
2000-11-27 12:04:10
3941
2178 ┕>Re: Re: tablespace에서 파일 추가하는 명령어에 대한 질문입니다.
이운형
2000-11-27 13:12:46
3657
2185  ┕>Re: Re: Re: tablespace에서 파일 추가하는 명령어에 대한 질문입니다.
초이
2000-11-27 19:12:27
3971
2173가르켜주세요
초보녀
2000-11-27
3346
2175┕>Re: 가르켜주세요
초이
2000-11-27 11:54:09
3645
2172pl/sql에 대해 [1]
속터짐
2000-11-26
4142
2207┕>Re: pl/sql에 대해 [1]
ora_man
2000-11-28 16:49:58
4317
2168sqlldr 에서 데이터 로딩시 질문
biceps
2000-11-25
3864
2167[질문] esql/c 가 없는데..
이동국
2000-11-25
3204
2180┕>Re: [질문] esql/c 가 없는데..
나그네
2000-11-27 16:43:59
3541
2166count
nu9yo
2000-11-25
3446
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다