Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienne nie działają
Forum PHP.pl > Forum > Bazy danych > Oracle
czezz
Wykonuje takiego select'a:
  1. variable x number;
  2. variable y number;
  3. variable a number;
  4.  
  5. define x = 2000;
  6. define y = 2*1000;
  7. define a = &x+&y;
  8. SELECT ener FROM adding WHERE ener = &a;


Jeżeli uruchomie to w SQL*Plus Worksheet (klient zainstalowany na moim PeCecie) to wynik jest taki:
  1. ENER
  2. ------
  3. 4000
  4. 1 row selected


ale jeżeli wykonam to samo pod sqlplus'em - command line'owym (tym dostępnym w shellu unixowym) to wynik jest taki:
  1. old 1: SELECT ener FROM adding WHERE ener = &a
  2. new 1: SELECT ener FROM adding WHERE ener = 2000+2*1000
  3.  
  4. no rows selected


Czy ktoś mi może wyjaśnić dlaczego ?
IP!
Użyj bind variables:

var x number;
var y number;
var a number;

execute :x := 2000;
execute :y := 2 * 1000;
execute :a := :x + :y;

select ener from adding where ener = :a;


(Prawie) wszędzie będzie działać jednakowo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.