내 웹 페이지에서 HTML 콘텐츠를 가져오고 싶습니다. 나는 PLSQL의 UTL_HTML 패키지로 할 수 있다고 읽었다. 그래서 프로젝트에서 다음 코드를 만들었습니다 :PLSQL에서 UTL_HTTP 권한 부여
v_webcontent := utl_http.request(v_weblink);
여기서 v_webconent와 v_weblink는 더 일찍 선언됩니다. 이 함수를 실행하면 PLSQL 예외가 발생합니다. PLS-00201: identifier 'UTL_HTTP' must be declared
이 문제는 패키지를 사용할 수 없기 때문에 발생합니다 (이 링크의 same error message).
나는 조언을 따랐다. 그래서 나는 SYSDBA 나 SYSOPER를 사용해서 만 로그온 할 수 있다고 SYS가 작동하지 않는 SYSTEM 역할로 sql 개발자에게 새로운 데이터베이스 연결을 만들었지 만 데이터베이스로 만든 표준 암호를 사용하지는 않을 것입니다. 그런 다음 위의 링크에 코드를 입력했습니다.
GRANT EXECUTE ON SYS.UTL_HTTP TO [database];
내가 만든 사용자의 이름은 '데이터베이스'입니다. 처음에는 [] 대괄호가 없으면 오류가 발생했습니다. 테이블 또는 뷰가 존재하지 않으므로 그 주위에 대괄호를 넣습니다. 이제 오류가 발생합니다 :
Error starting at line : 1 in command -
GRANT EXECUTE ON SYS.UTL_HTTP TO [database]
Error report -
SQL Error: ORA-00987: missing or invalid username(s)
00987. 00000 - "missing or invalid username(s)"
*Cause:
*Action:
그래서이 문제를 해결할 방법을 모릅니다. 위의 링크에서 OP는 그가 다른 오류를 가지고 있다고 말했고, 그래서 나는 똑같은 문제가 없는지 또한 확인했다. 나는 다음과 같이 입력했다 :
SELECT * FROM dba_objects WHERE object_name='UTL_HTTP'
그것은 4 개의 입구를 돌려 줬다. 소유자 : SYS, SYS, PUBLIC 및 APEX_040000.
누군가 나를 도울 수 있습니까? SYS와 어떤 암호로 로그온해야합니까?
다른 이름으로 새 사용자를 만들었습니다. 이제는 다음을 사용하여 권한 부여를 시도했습니다. 'myuser에게 sys.utl_http 실행 권한 부여'; 내가 사용하고있는 사용자가 따옴표를 사용하지 않았기 때문입니다. 두 경우 모두 테이블 또는 뷰가 존재하지 않습니다. 내가 SYSDBA에 대한 암호를 찾지 못했기 때문에 여전히 SYSTEM에 있습니다. 내가 설정 한 적이 없으며 암호를 다시 얻을 수있는 방법을 알고 있습니까? – Politiepet
@ 폴리 티에 페트, 답변이 수정되었습니다. 시도해보십시오. SYS 암호를 재설정 할 필요가 없었으므로이 암호가 작동하는지 모릅니다. – nop77svk
이미 수정했습니다. 문제는 SYS에 로그인 할 수 없다는 것이 아닙니다. 올바른 암호가 SQL 개발자의 SYSDBA에서 작동하지 않았습니다. 그래서 내 SQL 서버 컴퓨터에 무슨 짓을 한거야 : cmd를 입력 'sqlplus/nolog'에서 'sys를 sysdba로 연결'보다, 암호는 주식 암호입니다. 여기에서 실행할 수 있습니다 '권한 부여 실행 sys.utl_http "데이터베이스";' 이 방법으로 작동했습니다. – Politiepet