Автор: de1phi | 18.12.2007 в 10:22 | Рубрики: Базы данных

Для этого можно воспользоваться компонентами от AllRoundAutomations Direct Oracle Access. Если кому надо могу поделиться. При помощи этих компонент можно не только производить простые запросы/вставки, но и выполнять DDL-скрипты, и иметь доступ к объектам Oracle 8, примет смотри ниже…

Доступ объекту Oracle:

var
Address: TOracleObject;
begin
Query.SQL.Text := ’select Name, Address from Persons’;
Query.Execute;
while not Query.Eof do
begin
Address := Query.ObjField(’Address’);
if not Address.IsNull then
ShowMessage(Query.Field(’Name’) + ‘ lives in ‘ + Address.GetAttr(’City’));
Query.Next;
end;
end;

Автор: de1phi | в 10:22 | Рубрики: Базы данных

В SQL*Plus строка соединения - “xxxxxx.yyy”

В BDE это определяется как “@xxxxxx.yyy”

Символ @ является ключом.

Подскажите, как на Oracle 7.3.2.3 (Solaris x86) поменять compatible на 7.3.2.3 (c 7.1.0.0)?

Ставить в initmybase.ora

compatible = “7.3.2.3″
и после старта с новым параметром сделать
ALTER DATABASE RESET COMPABILITY;
И рестартовать базу.

прописать в \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE параметр:
NLS_NUMERIC_CHARACTERS = ‘.,’

или

после соединения с ORACLE выполнить
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ‘.,’

A: user/password@2: Это так для Oracle SQL Plus, и более других его утилит. А в BDE надо оставить все как для соединения с сетевым сервером, (протокол TNS, имя пользователя, кодировку, интерфейсную DLL) только вместо имени сервера написать “2:”. Это годится и для случая, когда на одной машине и сетевой сервер и приложение.

Эта функция используется действительно только для отладки. Для того, чтобы результаты ее работы были видны из SQL Plus, необходимо в нем выдать команду:

set serveroutput on size 10000;

“Bugs” - фильм ужасов для программистов-отладчиков.

Необходимо отключить (деинсталлировать через Oracle Installer) Trace Service на клиенте - совет от ORACLE.

Глюк имеет место быть только под Windows NT 4.xx.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

Если “Microsoft” начнет выпускать автомобили - то:
1. Когда на дорогу нанесут новую разметку, вам придется покупать новую машину.
3. “Macintosh” тоже начнет выпускать автомобили, они будут заряжаться от солнца, будут в два раза быстрее, ими будет легче управлять, но ездить они будут только по 5% дорог.
4. Индикаторы топлива, температуры двигателя и масла будут объединены в один “главный машинный индикатор”.
7. Во время аварии подушки безопасности, прежде чем сработают, спросят: “Are you sure?”

Вопрос

В статье “Создание серверов приложений с помощью Delphi 3″ вы написали, что подключались к Personal Oracle с помощью BDE. Я очень прошу вас рассказать, как вы это сделали. Для меня пока это остается загадкой.
Ответ
Доступ к Personаl Oracle (как и к любой другой версии СУБД Oracle) осуществляется следующим образом. Сначала нужно запустить сервер (в случае Personal Oracle для Windows 95 это отдельное приложение, в случае Oracle для Windows NT - набор сервисов, обслуживающих конкретную базу данных) и настроить клиентскую часть Oracle. Для этого следует запустить утилиту SQLNet Easy Configuration (в случае Oracle 8 - Oracle Net8 Easy Config) и с ее помощью создать описание псевдонима базы данных Oracle (для него, как и в BDE, используется термин alias, но это не то же самое, что псевдоним BDE). При создании этого описания важны три параметра.
Читать полностью…

Дает ли Delphi возможность корректно прервать выполнение SQL-запроса к серверу Oracle с помощью BDE? Например, чтобы при использовании с SQL Plus после отправки SQL-запроса на выполнение на экране появлялось окно с кнопкой Cancel, которое давало бы возможность в любой момент прервать выполнение этого запроса?

Насколько мне известно, для этой цели лучше всего использовать функции Oracle Call Interface (низкоуровневый API Oracle). В комплекте поставки Oracle есть соответствующие примеры для C, и переписать их на Pascal несложно.

Некоторые драйверы SQL Link позволяют прекратить выполнение запроса, если время его выполнения превышает заранее заданное значение (параметр MAX QUERY TIME соответствующего драйвера). Однако драйвер ORACLE, к сожалению, в их число не входит.

Потребность в автоматизации самых разнообразных сфер человеческой детельности накладывает определенные требования к создаваемым информационным системам. Эти требования связаны не только со сложностью, многообразием и большим объемом обрабатывамых данных, но и с тем, что большинство пользователей таких систем не являются специалистами в области компьютерных технологий, а имеют совершенно другие профессии. Поэтому, наряду с определенными требованиями, связанными с доступом к используемым данным, интерфейс приложений, с которыми работает пользователь, должен быть максимально простым, интуитивно понятным, и в то же время отвечающим определенным сложившимся на сегодняшний день стандартам, так, чтобы пользователь легко мог освоить очередное приложение. Это означает, что созданное приложение должно, как правило:
Читать полностью…

Уважаемые жители Королевства, для тестирования предлагаются две программы:

ora2dbf
Программа предназначена для экспорта данных из Oracle в файл DBF. Параметры:
-S: - имя сервиса
-U: - имя пользователя
-P: - пароль
-Q: - файл запроса, на основе которого формируются данные для экспорта
-T: - каталог или имя файла в который будут записываться данные. В случае если указан каталог или этот параметр не указан совсем, то имя DBF файла будет таким же как и файл запроса. DBF файл каждый раз будет создаваться заново.
-R: - имя файла отчета работы программы, если этот параметр не задан, то информация будет выводится на экран

dbf2ora
Программа предназначена для экспорта данных из DBF в Oracle. Параметры:
-S: - имя сервиса
-U: - имя пользователя
-P: - пароль
-D: - исходный DBF файл
-T: - имя таблицы. В случае если этот параметр не указан совсем, то имя таблицы будет таким же как и имя DBF файла. Таблица не пересоздается, а данные только добавляются.
-R: - имя файла отчета работы программы, если этот параметр не задан, то информация будет выводится на экран
16.01.03
Внесены некоторые исправления и добавлены модули с графическим интерфейсом.
15.11.02
Внесны исправления в программу ORA2DBF. Исправлена ошибка сохранения полей типа DATA

Доступ к Personаl Oracle (как и к любой другой версии СУБД Oracle) осуществляется следующим образом. Сначала нужно запустить сервер (в случае Personal Oracle для Windows 95 это отдельное приложение, в случае Oracle для Windows NT - набор сервисов, обслуживающих конкретную базу данных) и настроить клиентскую часть Oracle. Для этого следует запустить утилиту SQLNet Easy Configuration (в случае Oracle 8 - Oracle Net8 Easy Config) и с ее помощью создать описание псевдонима базы данных Oracle (для него, как и в BDE, используется термин alias, но это не то же самое, что псевдоним BDE). При создании этого описания важны три параметра.
Читать полностью…

Автор: de1phi | в 10:22 | Рубрики: Базы данных

export.cmd

D:\Oracle\Ora81\BIN\exp.exe -parfile=D:\Temp\OraExport\export.txt

export.txt

USERID=SYSTEM/manager@BILLING
FILE=D:\Temp\OraExport\billing.dmp
GRANTS=Y
INDEXES=Y
CONSTRAINTS=Y
LOG=D:\Temp\OraExport\export.log

export.log

Перевод документации:

Что такое ORACLE Database?

Это данные которые будут обрабатываться как единое целое. Database состоит из файлов операционной системы. Физически существуют database files и redo log files. Логически database files содержат словари, таблицы пользователей и redo log файлы. Дополнительно database требует одну или более копий control file.

Что такое ORACLE Instance?

ORACLE Instance обеспечивает программные механизмы доступа и управления database. Instance может быть запущен независимо от любой database (без монтирования или открытия любой database). Один instance может открыть только одну database. В то время как одна database может быть открыта несколькими Instance.

Instance состоит из:

SGA (System Global Area), которая обеспечивает коммуникацию между процессами;
до пяти (в последних версиях больше) бэкграундовых процессов.

От себя добавлю - database включает в себя tablespace, tablespace включает в себя segments (в одном файле данных может быть один или несколько сегментов, сегменты не могут быть разделены на несколько файлов). segments включают в себя extents.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

Для этого можно воспользоваться компонентами от AllRoundAutomations Direct Oracle Access. Если кому надо могу поделиться. При помощи этих компонент можно не только производить простые запросы/вставки, но и выполнять DDL-скрипты, и иметь доступ к объектам Oracle 8, примет смотри ниже…

var
Address: TOracleObject;
begin
Query.SQL.Text := ’select Name, Address from Persons’;
Query.Execute;
while not Query.Eof do
begin
Address := Query.ObjField(’Address’);
if not Address.IsNull then
ShowMessage(Query.Field(’Name’) + ‘ lives in ‘ + Address.GetAttr(’City’));
Query.Next;
end;
end;

Погода выполнила недопустимую операцию и завалила Африку снегом…

Ниже приведен пример, как это сделать при помощи Direct Oracle Access, надеюсь этот кусок кода несложно запустить в отдельном процессе, а в другом можно запустить перемесчатель прогресс бара. Есть готовая компонента, могу поделиться.

//на создании потока вставим то, что будет выбирать необходимую информацию

Self.fods.SQL.Text:=’SELECT SOFAR FROM V$SESSION_LONGOPS WHERE CONTEXT=:FK_ID’;
Self.fods.DeclareVariable(’FK_ID’,otInteger);
Self.fods.SetVariable(’FK_ID’,ID);
Читать полностью…

Хочу поделиться идеей, которая, может и приходила уже кому-нибудь в голову, но я пока не встречал таких решений… Для тех, кто проектирует базы данных для Oracle в ERwin. Предлагаю решение для загрузки русских наименований колонок из ERwin в DisplayLabels датасета.

Компонент, конечно, сырой, но я пользуюсь, и очень поиогает. Ненавижу вбивать один текст по 10 раз.
Что нужно сделать:
1. Создать в ErWin скрипт на уровне модели следующего содержания:
%ForEachTable()
{
%ForEachColumn()
{
COMMENT ON COLUMN %TableName.%ColName IS ‘%AttName’;
}}
2. Сгенерировать базу.
3. В дата-модуле или на форме разместить компонент TOraCommentsToFL.
4.Установить его свойство OraDataSet.
5. Установить свойство LoadFieldLabels в True, после чего названия полей будут загружены из базы Oracle.
6. После этого компонент можно удалить с формы!
Примечание:
Требуются установленные компоненты ODAC.