Join w PL/SQL

0

Witam!

Mam następujący problem z Oracle'm (używam serwera 10g express):

Otóż mam 2 tabele i widok:

tabela Assortment:

CREATE TABLE "ASSORTMENT"
( "IDASSORTMENT" NUMBER NOT NULL ENABLE,
"NAME" VARCHAR2(40) NOT NULL ENABLE,
"MANUFACTURER" VARCHAR2(40),
CONSTRAINT "ASSORTMENT_PK" PRIMARY KEY ("IDASSORTMENT") ENABLE
)

/**************************************************************************/

tabela Offers:

CREATE TABLE "OFFERS"
( "IDOFFER" NUMBER NOT NULL ENABLE,
"PRICE" BINARY_FLOAT NOT NULL ENABLE,
"IDDISTRIB" NUMBER NOT NULL ENABLE,
"IDASSORT" NUMBER NOT NULL ENABLE,
CONSTRAINT "OFFERS_PK" PRIMARY KEY ("IDOFFER") ENABLE
)

/**************************************************************************/

widok Alldistributors:

create or replace view "ALLDISTRIBUTORS" as
SELECT "IDDISTRIBUTOR","PASSWORD","NAME","CITY","STREET","NUM","ZIPCODE1","ZIPCODE2","ZIPCITY","ACCOUNT","NIP","TELEPHONE","FAX","EMAIL" FROM DISTRIBUTORS
UNION
SELECT "IDDISTRIBUTOR","PASSWORD","NAME","CITY","STREET","NUM","ZIPCODE1","ZIPCODE2","ZIPCITY","ACCOUNT","NIP","TELEPHONE","FAX","EMAIL" FROM DISTRIBUTORS@POZNAN

/**************************************************************************/

Kiedy wywołuję w konsoli zapytanie:

SELECT IDOFFER, ASS.NAME, MANUFACTURER, PRICE, DISTRIB.NAME
FROM ASSORTMENT ASS JOIN OFFERS OFF ON ASS.IDASSORTMENT=OFF.IDASSORT
JOIN ALLDISTRIBUTORS DISTRIB ON OFF.IDDISTRIB=DISTRIB.IDDISTRIBUTOR

to nie zawsze otrzymuję prawidłowe dane. Czasami zapytanie zwraca mi: "", a czasami zwraca oczekiwane dane.
Jak zapytanie wywołam z poziomu Visual Studio 2005 (ASP + C#) wyrzuca mi wyjątek: "Nieokreślony błąd.
Wystąpił błąd programu Oracle, ale nie można pobrać komunikatu o błędzie z programu Oracle.
Typ danych nie jest obsługiwany." (prawdopodobnie zapytanie zwróciło "").

Oprócz tego zapytanie to wykonuje się nienaturalnie długo, chociaż serwer działa na moim lokalnym komputerze (są 2 bazy dla dwóch użytkowników i symulują one rozproszenie, ale obie bazy są na localhoscie).
Jaka może być tego przyczyna?

0

Hallo!

Nie jestem co prawda specjalista ORACLE (od czasu do czasu bawie sie nim tylko) i dlatego nie moge jednoznacznie powiedziec czy twoje zapytanie jest prawidlowo skonstruowane czy tez nie. Moge Ci natomiast podpowiedziec, zebys szukanie ewentualnego bledu w tym zapytaniu zaczal od sprawdzenia jego dzialania w srodowisku ORACLE np. w SQL *Plus Worksheet (tak to sie nazywa w Oracle 9i). Jezeli ono zadziala prwaidlowo w srodowisku ORACLE, to znaczy, ze bledu trzeba szukac gdzie indziej.

Pozdrawiam
Markus

1 użytkowników online, w tym zalogowanych: 0, gości: 1