Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nazwa kolumny SQL taka sama jak nazwa zmiennej PL/SQL — Jak to zrobić w instrukcji SELECT?

Możesz, jeśli jesteś wystarczająco liberalny w swojej definicji „bez potrzeby zmiany nazw zmiennych” . Czytanie wspaniałego rozwiązywania nazw PL/SQL mówi:

Jeśli identyfikator jest zadeklarowany w nazwanej jednostce PL/SQL, możesz zakwalifikować jego prostą nazwę (nazwę w deklaracji) nazwą jednostki (bloku, podprogramu lub pakietu), używając następującej składni:

unit_name.simple_identifier_name

Poniższy przykład wyświetli 20 zgodnie z oczekiwaniami:

create table foo (a number, b number);

insert into foo values(1, 10);
insert into foo values(2, 20);
insert into foo values(3, 30);

begin
  <<bar>>
  declare
    a number;
    b number;
  begin
    a := 2;
    select b into bar.b from foo where a = bar.a;
    dbms_output.put_line(b);
  end;
end;
/

Nazwy zmiennych nie ulegają zmianie. Zamiast tego są hmm ... bardziej wykwalifikowani :)

Pamiętaj, że następujące nie działa:

begin
  declare
    a number;
    b number;
  begin
    a := 2;
    select foo.b into b from foo where foo.a = a;
    dbms_output.put_line(b);
  end;
end;
/

Jako niewykwalifikowany a w select -statement jest interpretowany jako kolumna ze względu na zasady pierwszeństwa:

Jeśli instrukcja SQL odwołuje się do nazwy, która należy zarówno do kolumny, jak i do zmiennej lokalnej lub parametru formalnego, wówczas pierwszeństwo ma nazwa kolumny.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Czy istnieje sposób na uzyskanie najnowszych błędów składni SQL?

  2. Jak zaktualizować Oracle Clob za pomocą JDBC?

  3. Łączenie Oracle z SQL Server przez bezpieczne połączenie

  4. Zautomatyzuj zadania integracji danych IRI za pomocą Oracle Job Scheduler

  5. Jak mogę zabić wszystkie sesje łączące się z moją bazą danych Oracle?