handling exceptions, really not simple... :-((
От | Eaglet |
---|---|
Тема | handling exceptions, really not simple... :-(( |
Дата | |
Msg-id | 9stld9$1cloc$1@news02.it.net обсуждение исходный текст |
Список | pgsql-admin |
Hi 2 everybody! I'm evaluating a database that supports our 3-tier solutions, in addition to Oracle. Postgres is at the moment the candidate n. 1, but I realized it's very hard to translate this type of code (Orqcle PL/SQL): FUNCTION F_EXT(par1, par2 ...) RETURN.... IS BEGIN SAVEPOINT spF_EXT; ...[instructions] INSERT INTO... UPDATE... DELETE... ...[instructions] SAVEPOINT spF_INT; ret := F_INT(par1, par2 ...); IF ret = 'KO' THEN ROLLBACK TO spF_EXT; ELSE IF ret IS NULL THEN ROLLBACK TO spF_INT; END IF; ...[instructions] COMMIT; EXCEPTION WHEN..... ...[instructions] END F_EXT; The goal to achieve is to trap every kind of execution errors without trying to prevent their occurrence. In any case, I usually can't be sure the function (F_EXT) works correcty: an exception could be lanched by an internal function (F_INT), I couldn't know to estabilish what happens and where ... By the way, the evironment is: the browser requests a PHP page that connect to a Data Source (Oracle) and lanch a Stored Procedure; after the execution by Oracle, PHP get the result and returns data or a message to the client. It's very important for me to solve the application logic in the Back-End of the system (Oracle or Postgres): integrity and meaning of function aren't only "commit all" or "rollback all", and when something of wrong happens, I need to know the type of exception and when it occurred. In Oracle I can do this, but in Postgres I've not yet found anything of similar. Can anyone help me? Thanks in advance... Eaglet
В списке pgsql-admin по дате отправления: