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 41479 게시물 읽기
No. 41479
오라클 프로시저 생성 시 오류문제 문의
작성자
손호영
작성일
2017-11-10 15:50ⓒ
2017-11-10 16:31ⓜ
조회수
6,063

안녕하세요.

오라클 초보입니다.

아래와 같이 프로시저를 생성하기 위해 작업을 했으나, 오류가 발생되서.. 어떻게 해야 제대로 생성이 될 수 있는지 도움 부탁 드립니다.

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

CREATE OR REPLACE PROCEDURE PDM.DOCUPDATEDATE

(urid IN NVARCHAR , userid IN NVARCHAR)

IS

 

 

BEGIN

          

                     UPDATE DOCUMENT_PROPERTIES set D$UPDATEDATE = GETDATE() where DOCUMENT_ID = @urid;

if(select name from DOCUMENT_TRIPLE where name = 'D$UPDATEDATE' and urid = @urid) is not null;

   

                     BEGIN

 

                                UPDATE DOCUMENT_TRIPLE  set value = GETDATE() where urid = @urid and name = 'D$UPDATEDATE';

 

                     END;

                     ELSE

   

                     BEGIN

 

                                INSERT DOCUMENT_TRIPLE (urid,value,name) values(@urid,GETDATE(),'D$UPDATEDATE');

 

                     END;

 

 

END;

 

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

 

오류내용 : 경고: 컴파일 오류와 함께 프로시저가 생성되었습니다, PLS-00103 ENCOUNTERED THE SYMBOL "SELECT"

 

 

 

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

-- MSSQL 구문을 그대로 썼네요. Oracle 구문으로 바꾸셔야죠.

CREATE OR REPLACE PROCEDURE pdm.docupdatedate
( v_urid   IN VARCHAR2
, v_userid IN VARCHAR2
)
IS
    v_cnt NUMBER;
BEGIN
    UPDATE document_properties
       SET d$updatedate = sysdate
     WHERE document_id = v_urid
    ;
    SELECT COUNT(*)
      INTO v_cnt
      FROM document_triple
     WHERE name = 'D$UPDATEDATE'
       AND urid = v_urid
    ;
    IF v_cnt = 1 TEHN
        UPDATE document_triple
           set value = sysdate
         WHERE name = 'D$UPDATEDATE'
           AND urid = v_urid
        ;
    ELSE
        INSERT document_triple (urid, value, name)
        VALUES(v_urid, sysdate, 'D$UPDATEDATE')
        ;
    END IF;
END;
/

마농(manon94)님이 2017-11-13 13:29에 작성한 댓글입니다.
이 댓글은 2017-11-13 13:30에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41483소계,합계 문의 드립니다. [2]
김민수
2017-11-20
7806
41481오라클 스케줄링에서 프로세스와 권한에대해 알고싶습니다.. [1]
오린이
2017-11-17
5853
41480오라클 일요일 로우 생성 문의좀 드려요. [1]
염진호
2017-11-15
5852
41479오라클 프로시저 생성 시 오류문제 문의 [1]
손호영
2017-11-10
6063
41478다음과 같이 했을때 복구가 가능하지 궁금합니다. [1]
김광덕
2017-11-07
5702
41477도와주세요 [2]
김진열
2017-11-03
5777
41476DB 특정프로그램으로 접속 막기 [1]
양정표
2017-11-02
5690
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다