Code: Select all
{$APPTYPE CONSOLE}
program a;
uses
SysUtils, Ora, OraScript, OraError, DAScript;
type
TEventDummy = class(TObject)
procedure ScriptError(Sender: TObject; E: Exception; SQL: string; var Action: TErrorAction);
procedure ScriptBeforeExecute(Sender: TObject; var SQL: string; var Omit: Boolean);
end;
{ TEventDummy }
procedure TEventDummy.ScriptBeforeExecute(Sender: TObject; var SQL: string; var Omit: Boolean);
begin
Writeln('------------------');
Writeln('BEFORE-EXEC: ' + SQL);
Writeln('------------------');
end;
procedure TEventDummy.ScriptError(Sender: TObject; E: Exception; SQL: string; var Action: TErrorAction);
begin
Writeln('------------------');
Writeln('ERROR: ' + E.Message);
Writeln('SQL: ' + SQL);
Writeln('------------------');
Action := eaContinue;
end;
var
Session: TOraSession;
Script: TOraScript;
Event: TEventDummy;
begin
Writeln(ODACVersion);
Session := TOraSession.Create(nil);
Script := TOraScript.Create(nil);
Event := TEventDummy.Create;
Script.Session := Session;
Script.OnError := Event.ScriptError;
Script.BeforeExecute := Event.ScriptBeforeExecute;
Session.ConnectString := 'any/valid@login';
Script.SQL.Add('DROP TABLE FOO;');
Script.SQL.Add('DROP TABLE BAR;');
Script.SQL.Add('DROP JAVA SOURCE BAZ;');
Script.SQL.Add('DROP TABLE FOOBAR;');
Script.SQL.Add('DROP TABLE BARFOO;');
Script.SQL.Add('-- add any number of lines here');
Script.SQL.Add('-- all lines captured in last exec!');
Script.SQL.Add('DROP TABLE BAZBAZ;');
Script.Execute;
end.
Code: Select all
11.1.3
------------------
BEFORE-EXEC: DROP TABLE FOO
------------------
------------------
ERROR: ORA-00942: table or view does not exist (as expected)
SQL: DROP TABLE FOO
------------------
------------------
BEFORE-EXEC: DROP TABLE BAR
------------------
------------------
ERROR: ORA-00942: table or view does not exist (as expected)
SQL: DROP TABLE BAR
------------------
------------------
BEFORE-EXEC: DROP JAVA SOURCE BAZ;
DROP TABLE FOOBAR;
DROP TABLE BARFOO;
-- add any number of lines here
-- all lines captured in last exec!
DROP TABLE BAZBAZ;
------------------
------------------
ERROR: ORA-00933: SQL command not properly ended ([b][u]not[/u][/b] expected)
SQL: DROP JAVA SOURCE BAZ;
DROP TABLE FOOBAR;
DROP TABLE BARFOO;
-- add any number of lines here
-- all lines captured in last exec!
DROP TABLE BAZBAZ;
------------------
Obviously Oracle answers with ORA-00933