oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12505, TNS

1792 단어 Oracle12_이jdk
oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
 

문제 설명: jdbc 연결 Oracle12 플러그 가능 데이터 루트 PDB 링크 오류


솔루션:


먼저 자신의 oracle 설치 디렉터리에 있는 D:\app\Administrator\virtual\product\12.2.0\dbhome_를 보십시오1etwork\admin(자신의oracle 설치 디렉터리)
이 폴더 아래의 tnsnames.ora 두 개의 프로필
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Xiong-Chun)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
 orcl
    Pdb
 , 

ORCLPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Xiong-Chun)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCLPDB)# 
    )
  )

그리고 자바 코드의 문제입니다.
일단 Jar 가방은 ojdbc7이나 ojdbc8입니다. 어쨌든 6은 못 쓰겠습니다.
public class OracleTest {
    @Test
    public  void test001() throws ClassNotFoundException, SQLException {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        // ,1521/ORCLPDB !!! : !!!
        String url = "jdbc:oracle:thin:@localhost:1521/ORCLPDB";
        String username = " ";
        String psw = " ";
        Connection conn = DriverManager.getConnection(url,username,psw);

        String sql = "select * from emp";
        PreparedStatement ps = conn.prepareStatement(sql);
        ResultSet resultSet = ps.executeQuery();
        while(resultSet.next()){
            System.out.println(resultSet.getObject(1));
            System.out.println(resultSet.getObject(2));
            System.out.println(resultSet.getObject(3));
        }
        resultSet.close();
        ps.close();
        conn.close();

    }

좋은 웹페이지 즐겨찾기