2016-02-03 2 views
1

Я настроил Oracle VirtualBox с помощью DB, пользователь и заполнил небольшую базу данных. На той же машине я установил Pentaho Data-Integration (Spoon), драйвер JDBC, и я пытаюсь создать соединение с Oracle DB, но безуспешно. Это где я печатаю на мандатную/данные:Конфигурация данных Pentaho Интеграция для подключения к Oracle DB

Имя хоста: локальный

Имя базы данных: (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (ПРОТОКОЛ = TCP) (HOST = локальный) (PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))

Номер порта: 1521

Имя: SYSTEM

Пароль: оракул

enter image description here Это сообщение об ошибке:

Error connecting to database [oraConn12c] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database 

Error connecting to database: (using class oracle.jdbc.driver.OracleDriver) 
IO Error: NL Exception was generated TNS-04605: Invalid syntax error: Unexpected char or LITERAL "(" before or at (DESCRIPTION = 


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database 

Error connecting to database: (using class oracle.jdbc.driver.OracleDriver) 
IO Error: NL Exception was generated TNS-04605: Invalid syntax error: Unexpected char or LITERAL "(" before or at (DESCRIPTION = 


    at org.pentaho.di.core.database.Database.normalConnect(Database.java:459) 
    at org.pentaho.di.core.database.Database.connect(Database.java:357) 
    at org.pentaho.di.core.database.Database.connect(Database.java:328) 
    at org.pentaho.di.core.database.Database.connect(Database.java:318) 
    at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80) 
    at 
....... 
... more ..... 
Caused by: java.sql.SQLRecoverableException: IO Error: NL Exception was generated TNS-04605: Invalid syntax error: Unexpected char or LITERAL "(" before or at (DESCRIPTION = 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743) 
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:208) 
    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:569) 
    ... 52 more 
Caused by: oracle.net.ns.NetException: NL Exception was generated TNS-04605: Invalid syntax error: Unexpected char or LITERAL "(" before or at (DESCRIPTION = 
    at oracle.net.resolver.AddrResolution.resolveAddrTree(AddrResolution.java:733) 
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:493) 
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496) 
    ... 58 more 

Hostname  : localhost 
Port   : 1521 
Database name : (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL))) 

Как я могу настроить его для подключения Pentaho/Ложка к БД Oracle? Ядро Oracle отлично работает, я также пробовал с другими пользователями/базами данных, которые я создал, но результат тот же.

+1

Я думаю, что вы должны иметь только имя базы данных в этом поле. Протокол, хост и порт уже определены. – bolav

+0

Попробуйте удалить номер порта. Я думаю, что вам не нужен номер PORT – Rishu

ответ

2

Я был в состоянии решить эту проблему, удалив данные «Имя хоста» и «Номер порта» из окна подключения. Оставляем только строку «Имя базы данных».

+1

Я тоже. Таким образом, мне удается выполнить тест соединения, но затем, когда я использую сконфигурированный источник данных, я получаю: «Ошибка IO: генерируется исключение NL». Есть идеи? – user2381758

+0

Спасибо, это помогло! –

0

У меня была аналогичная проблема. Невозможно решить эту проблему для клиентского инструмента, но не для сервера карт.

Я установил его с помощью соединения JNDI.

это в вашем PDI \ простодушных jdni \ jdbc.properties

mydb/type=javax.sql.DataSource 
mydb/driver=oracle.jdbc.driver.OracleDriver 
mydb/url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS(PROTOCOL=TCP)(HOST=myhost)(PORT=myport)))(CONNECT_DATA=(SERVICE_NAME=myservicename))) 
mydb/user=myuser 
mydb/password=mypassword 

и это соединение в вашем repositories.xml:

<connection> 
<name>JNDI</name> 
<server>myserver</server> 
<type>ORACLE</type> 
<access>JNDI</access> 
<database>mydb</database> 
<port>myport</port> 
<username>myuser</username> 
<password>mypassword</password> 
<servername/> 
<data_tablespace/> 
<index_tablespace/> 
<attributes> 
    <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> 
    <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> 
    <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> 
    <attribute><code>PORT_NUMBER</code><attribute>myport</attribute></attribute> 
    <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> 
    <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> 
    <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> 
</attributes> 

Смежные вопросы