오라클 SQL 개발자에서 "읽기 호출에서 하나를 뺀 값"을 어떻게 해결할 수 있습니까?
sql developer를 실행하고 모든 데이터를 설정하면 connect를 클릭하지만 다음 오류가 발생합니다.
Status : Failure -Test failed: IO Error: Got minus one from a read call
저는 오라클 초보자입니다.어떻게 하면 그 오류를 해결할 수 있습니까?
저는 64비트 Windows 7과 Oracle 12c를 사용합니다.
이 오류는 클라이언트의 (SQL Developer) ojdbc8 드라이버 및 Oracle 19.3 도커 컨테이너와 관련된 문제와 연결되어 있습니다.제가 해결할 수 있는 방법은 클라이언트에 시스템 속성을 설정하는 것이었습니다. JDBC 연결 문자열 내에서 이 속성을 설정할 수 있습니다.)
jdbc:oracle:thin:@tcp://host:port/service?oracle.net.disableOob=true
오류의 원인은 다음과 같습니다.
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=357910144923387
sqlnet.ora의 서버 측에서 OOB를 사용하지 않도록 설정하여 이 문제를 해결할 수도 있습니다.
DISABLE_OOB=ON
또 다른 해결 방법은 ojdbc7 드라이버를 사용하는 것입니다.
이것이 우리 중 일부에게 도움이 되기를 바랍니다.
대화상자의 입력에서 포트 5500을 사용합니다.이 포트는 EM Express에 사용되는 포트입니다.HTTP 트래픽에만 응답합니다.따라서 이 경우 -1 오류 메시지는 프로토콜 협상이 실패했음을 의미합니다. SQLDEV는 HTTP를 수신하는 대상과 SQL*NET을 대화하려고 합니다.
당신이 찾고 있는 항구는 변경되지 않았다면 1521입니다.$ORACLE_HOME/network/admin/listener.ora에서 올바른 포트 번호를 확인합니다.
"sql.sqlnode_checking = no"를 설정하거나 sqlnet. 또는 파일에서 이 매개 변수를 설명한 다음 DB 서버에서 수신기를 다시 시작하고 다시 테스트해야 합니다.
먹어봐.
저는 같은 문제를 얻었지만, 다음 단계가 저에게 효과가 있었습니다. Gaurav도 이미 공유한 것 같습니다.
1.Go to the folder where you have installed the database (Like: F:\app)
2.Here you will be able to see many folders, go to product\11.2.0("your databse version")\dbhome_1\NETWORK\ADMIN
3.find listener.ora file and open as text file
4.Check for the port number in that file
5.Now provide that port number while doing connection in sql developer.
수신기에서 ACL을 사용 가능으로 설정한 것 같습니다.
오류를 방지하려면 다음 단계를 수행할 수 있습니다.
1. Go to directory $ORACLE_HOME/network/admin
2. Modify sqlnet.ora file with following parameter:
tcp.validnode_checking = no
3. If you don't want to disable this, you can put the machine names as follows:
tcp.invited_nodes=(machine1, machine2)
3. Bounce the listener.
도움이 되길 바랍니다.
DB가 가동 중이고 Oracle 바이너리 소유자(일반적으로 oracle:oinstall Unix/Linux 사용자)를 사용하여 로컬로 ASSYSDBA를 데이터베이스에 연결할 수 있는지 확인합니다.작동하지 않으면 다른 문제가 발생할 수 있습니다.데이터베이스가 실행 중인 유닉스/리눅스 호스트에서 오라클 파일의 권한 확인:
cd $ORACLE_HOME/bin
ls -ltr oracle
-rwxr-xr-x 1 oracle oinstall 136803483 Mar 16 20:32 oracle
아래와 같이 권한을 변경합니다.
chmod 6751 oracle
ls -ltr oracle
-rwsr-s--x 1 oracle oinstall 136803483 Mar 16 20:32 oracle
이 문제에 대한 대부분의 대답은 연결 옵션에서 잘못된 포트 번호를 사용하거나 이와 유사한 것을 가리킵니다.제 경우, 몇 시간 동안 검색한 결과, 그 이유는 다른 것으로 나타났습니다.
Oracle Listener를 시작할 때 사용하는 사용자를 확인합니다.이 작업은 루트가 아닌 오라클 사용자를 사용하여 수행해야 합니다.그렇지 않으면 수신기 파일이 사용자 오라클 그룹 dba가 아닌 사용자 디먼 그룹 루트로 생성됩니다.이로 인해 다음과 같은 결과가 초래됩니다.
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
해당 여부를 확인하려면 다음으로 이동하십시오.
/var/tmp/.oracle
및 모든 파일을 나열합니다(ls -la).루트 그룹 사용자가 만든 s#* 파일 중 일부를 발견하면 수신기를 중지하고(lsnrctl 중지) 위의 파일을 루트로 삭제하고 수신기를 오라클 사용자로 다시 시작합니다.
안타깝게도 sqdeveloper는 "읽기 호출에서 하나를 뺀 값"을 읽을 때 전체 스택 추적을 표시하지 않습니다.SQL-Squirrel로 전환한 덕분에 문제를 찾을 수 있었습니다.
저의 경우 호스트와 포트가 잘못 지정되었습니다.10번 창에 있는 명령행에 "tnsping yourServiceName"을 입력했습니다.그것은 다른 호스트와 포트를 반환하고, 나는 sql developer에서 올바른 호스트와 포트를 사용했고 작동했습니다.
저의 경우 Oracle 19C와 함께 Docker를 사용할 때 발생했습니다.해결 방법은 listener.or 파일을 찾아서 'PORT'를 변경하고 컨테이너, Oracle DB, listener를 다시 시작하는 것입니다.
호스트가 다른 프로세스에서 이미 LISENT(HOST)였기 때문에 호스트가 TCP에 액세스하려고 할 때 발생한 오류로 추정됩니다.Docker에 액세스할 때는 대부분의 경우 localhost에 액세스하는 것을 고려하십시오.
나는 포트를 1523으로 변경했고, 모든 문제가 해결되었습니다.
링크 작업을 시도하거나 수신기 디렉토리 권한을 확인하거나 /dbhome/bin/relink all 명령을 사용합니다.
연결 이름: HR_ORCL 사용자 이름: HR, 암호: hr, 연결 유형: 로컬, 역할: SYSDBA 연결을 클릭합니다.그건 작동할 것이다.
사실, 이것은 데이터베이스에 특정한 문제가 아닙니다.설치하는 동안 데이터베이스에서 생성된 포트 값과 관련이 있습니다.이 문제를 해결하려면 아래를 따르십시오.
- 데이터베이스를 설치한 폴더로 이동합니다(예: F:\app).
- 여기에서 많은 폴더를 볼 수 있습니다. 제품\11.2.0("데이터베이스 버전")\dbhome_1\NETWORK\ADM인
- listener.or 파일을 찾아서 텍스트 파일로 엽니다.
- 해당 파일에서 포트 번호 확인
- 이제 sql developer에서 연결하는 동안 해당 포트 번호를 제공합니다.
문제가 해결되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/30730644/how-can-i-solve-got-minus-one-from-a-read-call-in-oracle-sql-developer
'programing' 카테고리의 다른 글
"__block" 키워드는 무엇을 의미합니까? (0) | 2023.06.29 |
---|---|
C#을 사용하여 MongoDB 고유 키 만들기 (0) | 2023.06.29 |
하나의 문에서 시퀀스에서 여러 NEXTVAL 쿼리 (0) | 2023.06.29 |
단일 글로벌 시퀀스와 테이블당 시퀀스 중 어느 것이 더 나은가요? (0) | 2023.06.29 |
Excel 스프레드시트에서 마지막 행 찾기 (0) | 2023.06.29 |