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

Używasz zmiennych wiązania w SQL Plus z więcej niż jednym wierszem?

Podobne do podejścia @Glenn, ale możesz zadeklarować zmienną bind w SQL*Plus i użyć jej w zwykłym zapytaniu SQL. Najpierw zadeklaruj to za pomocą var[iable] polecenie:

variable comment_id number;

Następnie ustaw go za pomocą exec[ute] polecenie, które jest zasadniczo anonimowym blokiem:

execute :comment_id := 3052753;

Następnie uruchom oryginalne zapytanie z :comment_id referencje, a nie POCZĄTEK lub END :

select e.label as doc_name,
                       e.url,
                       i.item_id,
                       'multi' as form_type
                from cr_items i, cr_extlinks e
                where i.parent_id = :comment_id
                and e.extlink_id = i.item_id
               UNION
                select null as doc_name,
                       utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(r.content, 2000, 1))  as url,
                       r.item_id,
                       'single' as form_type
                from cr_revisions r
                where r.revision_id = ( select content_item.get_latest_revision(:comment_id) from dual);

Nie sądzę, że istnieje duża różnica funkcjonalna między tymi dwoma podejściami poza osobistymi preferencjami i oba działają również w SQL Developer (gdy są uruchamiane jako skrypt). Uważam, że jest to łatwiejsze, gdy uruchamiam SQL skopiowany z pliku Pro*C, który już używa : formularz powiązania, ponieważ nie musisz w ogóle modyfikować kodu.

Nawiasem mówiąc, możesz napisać:

where r.revision_id = ( select content_item.get_latest_revision(:comment_id) from dual)

bez dodatkowego wyboru , jako:

where r.revision_id = content_item.get_latest_revision(:comment_id)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać kwartał od daty w Oracle?

  2. Korzystanie z usługi internetowej i wstawianie CLOB przy użyciu Node.js do tabeli bazy danych Oracle

  3. PHP, Oracle i ODBC:Jak sprawdzić, czy zestaw wyników jest pusty?

  4. Jak korzystać z funkcji rzeczy w Oracle

  5. Blok wstrzykiwania SQL Oracle z DBMS_ASSERT