2011-09-13 8 views
3

mysql 클라이언트 터미널에서 저장 프로 시저를 만들고 모든 것이 정상입니다. 하지만 그것을 호출하려고 할 때이 오류 메시지가 얻을 :저장 프로 시저가 존재하지 않습니다.

ERROR 1305

(42000) : 절차 XXX 내가

없이 다시 만들려고 그 후

존재하지 않습니다

DROP PROCEDURE IF는

문을 존재하고 나는이 얻을 :

ERROR 1304 (42000) : 절차 XXX 이미

어떤 문제가 존재한다? (.)

* 문제 MY 데이터베이스 NAME IN 지점이이었다

* 예 'site.db'->이 DATABASE OF WRONG NAME이고 MYSQL 못해 절차를 찾아라! *

+1

프로 시저를 호출하는 데 사용 된 실제 코드 또는이를 삭제하는 데 사용 된 코드를 표시하지 않았으므로 아무도 도움을받을 수 없습니다 . –

+0

"XXX"의 철자를 사용할 수 없습니다. 그것은 우리가 실제 코드를 보여주기 전까지는 추측입니다. –

+0

SQL Developer 또는 Toad와 같은 클라이언트가있어 저장 프로 시저를 호출 한 후에 저장 프로 시저가 종료되는지 확인하십시오. 파일의 스크립트를 사용하여 논리를 실행하거나 SQL 명령을 직접 입력하고 있습니까? 이 문제를 해결하기 전에 몇 가지 세부 정보를 추가로 전달했습니다. 스크립트 파일을 사용하는 경우 스키마 소유자가 다른 스키마 소유자보다 더 많은 권한을 갖습니다. – gsirianni

답변

1

잘못된 업그레이드 등으로 인해 시스템 데이터베이스의 일관성에 문제가있을 수 있습니다. 당신이 루트 사용자 (또는 사용자 A)를 사용하여 수
, mysql 클라이언트를 사용하여 프로 시저를 정의 경우

select * from information_schema.ROUTINES where routine_name = 'xxx' 
+0

내 쿼리가 비어 있습니다. : –

0

에 대한 결과는 무엇인가.

기회는 당신이 저장 프로 시저를 호출하는 다른 사용자가 사용하고 있으며,
하자의 사용자 B, 그것은이 경우, 사용자가 액세스 권한을 부여 할 수 있습니다

권한에 약간의 차이가 원인이 있다고 말했다 권리
현재 권한을 보려면이 명령을 사용할 수 있습니다.

show procedure status; 
+0

루트 사용자 만 사용합니다 – Faraona

+0

@Faraona 두 가지 경우 모두 스토어 절차를 포함 시키십시오. 거짓말이 문제 일 수 있습니다. – ajreal

관련 문제