Mathematica 8 не поставляется с предустановленным драйвером Oracle, и этот факт можно проверить, оценив следующие выражения:
Needs["DatabaseLink`"]
JDBCDriverNames[]
(*
Out[2]= {Microsoft Access(ODBC),hsqldb,HSQL(Memory),HSQL(Server),
HSQL(Server+TLS),HSQL(Standalone),HSQL(Webserver),HSQL(Webserver+TLS),
jtds_sqlserver,jtds_sybase,mysql,MySQL(Connector/J),ODBC(DSN),odbc,
PostgreSQL,Microsoft SQL Server(jTDS),Sybase(jTDS),HSQL 2.0.1}
*)
Мы должны будем следовать инструкциям в документации Mathematica , который описывает, как установить новый драйвер JDBC.
Сначала нам нужно будет создать новый каталог ресурсов, в который нужно поместить необходимый файл JAR драйвера JDBC:
$jarDirectory =
CreateDirectory @
FileNameJoin @
{$UserBaseDirectory, "Applications", "Oracle", "Java"}
Затем мы должны выбрать драйвер JDBC для использования.Посетите соответствующую страницу Oracle , чтобы найти правильный драйвер JDBC для вашей базы данных.
Выберите версию драйвера, совместимую с Java 6, версию, которую Mathematica 8 использует для внутреннего использования.В этом примере я решил использовать драйвер Oracle 11.2.0.2.0 для Java 6. Загрузите файл и переместите его в только что созданный каталог ресурсов:
SystemOpen[$jarDirectory]
Далее мы создадим JDBCфайл конфигурации драйвера, чтобы новый драйвер был зарегистрирован в Mathematica:
$configDirectory =
CreateDirectory @
FileNameJoin @
{$UserBaseDirectory, "Applications", "Oracle", "DatabaseResources"}
Export[
FileNameJoin @ {$configDirectory, "Oracle.m"}
, JDBCDriver[
"Name" -> "Oracle"
, "Driver" -> "oracle.jdbc.driver.OracleDriver"
, "Protocol" -> "jdbc:oracle:thin:@"
, "Version" -> 1
]
, "Text"
]
Драйвер теперь установлен:
JDBCDriverNames[]
(*
Out[9]= {Oracle,Microsoft Access(ODBC),hsqldb,HSQL(Memory),HSQL(Server),
HSQL(Server+TLS),HSQL(Standalone),HSQL(Webserver),HSQL(Webserver+TLS),
jtds_sqlserver,jtds_sybase,mysql,MySQL(Connector/J),ODBC(DSN),odbc,
PostgreSQL,Microsoft SQL Server(jTDS),Sybase(jTDS),HSQL 2.0.1}
*)
Если судьбы улыбаются, теперь мы можем установить соединение ивыполнить запрос SQL:
$connection =
OpenSQLConnection[
JDBC["Oracle", "myserver:1521:mysid"]
, "Username" -> "scott"
, "Password" -> "tiger"
]
SQLExecute[$connection, "SELECT 'success!' FROM DUAL"]
... где myserver - имя сервера базы данных, 1521 - номер порта прослушивателя и mysid - это идентификатор системы Oracle (SID).
URL-адреса Oracle JDBC бывают разных форм.Подробнее см. В Oracle FAQ .