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
운영게시판
최근게시물
DB2 Q&A 1069 게시물 읽기
No. 1069
[질문] 프로시저를 삭제하려고 해도 삭제가 안됩니다.
작성자
이준식(ysaraha)
작성일
2006-07-31 00:51
조회수
7,839
DROP PROCEDURE TEST_01;

 

위의 명령으로 프로시저를 삭제하려고 하니 아래의 메세지가 나온후 삭제가 안됩니다.

 

ZETSWING.TEST_01에 대한 참조가 서명없이 수행되었지만 루틴이 스키마에서 고유하지 않습니다. SQLSTATE=42725

 

검색해봐도 속시원한 답변이 없네요.

도움말씀 부탁드립니다.

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

 

How can I drop one specific stored procedure when I have several overloaded procedures with the same name?
   
    A: Each procedure must have a unique specificname in the DB2 system catalog. This specificname can be used to delete the one procedure without affecting others with the same procname/routinename.

Use the following query to find the specificname for a procedure (be sure to modify the where clause with the correct name). There will be a break in specificname that will help identify the procedure with the parameters matching the procedure to be dropped.

db2 select substr(specificname,1,10) as "SPECIFICNAME", \
substr(routinename,1,10) as "ROUTINE", substr(parmname,1,20)as "PARMNAME", \
CASE rowtype \
WHEN 'B' THEN 'Input/Output' \
WHEN 'C' THEN 'Result after casting' \
WHEN 'O' THEN 'Output' \
WHEN 'P' THEN 'Input' \
WHEN 'R' THEN 'Result before casting' \
END \
as "PARMTYPE" , \
substr(typename,1,10) \
from syscat.routineparms where routinename = 'MY_PROCEDURE' \
order by specificname, routinename

Once the correct specificname is determined, use this ddl:
db2 drop specific procedure .

도님이 2006-07-31 09:56에 작성한 댓글입니다. Edit

위의 영문 해석입니다. 도움이 될까해서리 ㅋ

 

Q:How can I drop one specific stored procedure when I have several overloaded procedures with the same name? 

( 같은 이름으로 몇개의 중복된 프로시져를 사용할 경우, 어떻게 하나의 특정 프로시져를 불러내지요?)
   
A: Each procedure must have a unique specificname in the DB2 system catalog.

(각각의 프로시져는 반드시 DB2 체제목록에 있는 고유한 특정이름을 가져야 합니다.)

 This specificname can be used to delete the one procedure without affecting others with the same procname/routinename.

(이렇게 구분된 고유명은 같은 procname또는 routinename속에서 하나의 프로시져를 지울때 다른 것에 영향을 주지않고 사용할 수 있습니다.)

Use the following query to find the specificname for a procedure (be sure to modify the where clause with the correct name).

(프로시져에 대한 고유명을 찾기위해서는 다음과 같은 수식을 사용하세요.( 수정할 구문은 정확한 이름으로 확실히 하세요.))

 There will be a break in specificname that will help identify the procedure with the parameters matching the procedure to be dropped.

(그렇게 하면 파라미터가 가리키는 것이 지워질 프로시져인가 확인하기 위하여 고유명( 혹은 특정 변수)에 멈출것입니다.

db2 select substr(specificname,1,10) as "SPECIFICNAME", \
substr(routinename,1,10) as "ROUTINE", substr(parmname,1,20)as "PARMNAME", \
CASE rowtype \
WHEN 'B' THEN 'Input/Output' \
WHEN 'C' THEN 'Result after casting' \
WHEN 'O' THEN 'Output' \
WHEN 'P' THEN 'Input' \
WHEN 'R' THEN 'Result before casting' \
END \
as "PARMTYPE" , \
substr(typename,1,10) \
from syscat.routineparms where routinename = 'MY_PROCEDURE' \
order by specificname, routinename

 

Once the correct specificname is determined, use this ddl:
db2 drop specific procedure .

(한번더 정확한 변수가 지정되었다면, 다음 ddl을 사용하세요:

db2 drop specific procedure .

이준식(ysaraha)님이 2006-08-08 09:44에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1072[질문] 이거 좀 이상하지 않나요? [3]
이준식
2006-08-04
7236
1071검색건수가 2건일때 한건으로 나타나게 하고 싶은데 어떻게 해야할 까요? [4]
김현철
2006-08-03
7812
1070insert, update시에 로그 안남게 하는 방법? [1]
이문선
2006-07-31
8353
1069[질문] 프로시저를 삭제하려고 해도 삭제가 안됩니다. [2]
이준식
2006-07-31
7839
1068[질문] 스토어드 프로시져 실행방법이 궁금합니다. [2]
이준식
2006-07-29
8393
1067JOIN 결과 UPDATE ?? [2]
2006-07-28
9321
10661:N 구조에서 보통 그룹화 SELECT는 어떻게 하시나요... [5]
난감해요
2006-07-27
7565
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다