Страницы: 1
RSS
Данные из Oracle
 
Добрый вечер! Не знаю с какого боку подступиться. Есть таблицы в Oracle. Как при помощи Excel (VBA) обращаться к Oracle и вытаскивать оттуда данные? Спасибо.
 
А через MS Query не пробывали? Есть Oracle ODBC Driver, или ADO Driver, они ставятся из инсталяции клиента, далее настраивать нужно nls.ini (если память не подводит). А далее как к любой базе: имя_сервера, пользователь, пароль. Пишите SQL запрос и получаете данные в Excel.
 
Oracla дома нет. Ответил бы подробнее. (((
 
{quote}{login=McCinly}{date=15.04.2010 07:14}{thema=}{post}А через MS Query не пробывали? Есть Oracle ODBC Driver, или ADO Driver, они ставятся из инсталяции клиента, далее настраивать нужно nls.ini (если память не подводит). А далее как к любой базе: имя_сервера, пользователь, пароль. Пишите SQL запрос и получаете данные в Excel.{/post}{/quote}  
 
Мне загрузили только Toad (лягушку), там я эти таблицы просматриваю и могу выбирать данные при помощи select. Хотелось написать запрос с Excel, тк данные будут обновляться ежедневно, а для дальнейшего анализа данных я бы написала макрос. ADO получится?
 
Да АДО получится. Погуглите "данные ADO в Excel" или "ADO+VBA"  
 
Если tnsnames.ora настроен, то можно так:  
 
   Dim Cn As ADODB.Connection  
   Dim CP As ADODB.Command  
   Dim Rs As ADODB.Recordset  
   Dim Conn As String  
   Dim QSQL As String  
 
Conn = "DRIVER={ORACLE ODBC DRIVER};SERVER=ServiceName;UID=username;PWD=password;DBQ=Service name;DBA=W;APA=T;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;MTS=F;CSR=F;PFC=10;TLO=O;"  
 
      Set Cn = New ADODB.Connection  
 
      With Cn  
        .ConnectionString = Conn  
        .CursorLocation = adUseClient  
        .Open  
      End With  
 
      If Cn.State = adStateOpen Then  
      MsgBox "Соединились"  
      End If  
 
'Connect to Oracle server end  
 
 
'close connection begin  
   Cn.Close  
   Set Cn = Nothing  
   Set CP = Nothing  
'close connection end  
 
McCinly
 
или так:  
 
Private Sub cmdTest_Click()  
 
'Defining variables  
Dim cnOra As ADODB.Connection  
Dim rsOra As ADODB.Recordset  
Dim db_name As String  
Dim UserName As String  
Dim Password As String  
 
Set cnOra = New ADODB.Connection  
Set rsOra = New ADODB.Recordset  
 
db_name = "ИМЯ_ВАШЕЙ_БАЗЫ"  
UserName = "пользователь"  
Password = "пароль"  
 
'Открываем ODBC соединение в ADO  
cnOra.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" _  
& Password + ";"  
rsOra.CursorLocation = adUseServer  
 
'Пуск запроса  
rsOra.Open "select global_name from global_name", cnOra, adOpenForwardOnly  
 
'Заполняем ячейки из выборки  
While Not rsOra.EOF  
Worksheets("Лист1").Range("A1") = rsOra![global_name]
rsOra.MoveNext  
Wend  
 
rsOra.Close  
'тут запрос  
rsOra.Open "select sysdate from dual", cnOra, adOpenForwardOnly  
 
While Not rsOra.EOF  
Worksheets("Лист1").Range("A2") = rsOra![sysdate]
rsOra.MoveNext  
Wend  
 
'Закрыть соединение  
rsOra.Close  
cnOra.Close  
Set rsOra = Nothing  
 
End Sub
 
{quote}{login=Ира}{date=15.04.2010 06:51}{thema=Данные из Oracle}{post}Добрый вечер! Не знаю с какого боку подступиться. Есть таблицы в Oracle. Как при помощи Excel (VBA) обращаться к Oracle и вытаскивать оттуда данные? Спасибо.{/post}{/quote}  
а еще можно использовать  ETL    
можно погуглить  и найти подходящий для своих целей,можно использовать бесплатные, я использую TOS    
раньше использовал SQl navigator  - экспорт в txt - импорт в xls
Спасибо
 
{quote}{login=McCinly}{date=17.04.2010 12:53}{thema=}{post}или так:  
 
Dim cnOra As ADODB.Connection  
 
End Sub{/post}{/quote}  
 
Здесь выдаёт ошибку: Compile error: User-defined type not defined  
 
Почему?
 
Подскажите, пожалуйста, как данные из rsOra![sysdate] запихнуть на соседний лист в Pivot. Уже измучился. Не получается.
Страницы: 1
Читают тему
Наверх