SORU
25 AĞUSTOS 2010, ÇARŞAMBA


Nasıl değişken bildirmek ve aynı SQL komut kullanılır? (Oracle, SQL)

Bazı testler SQL ile yazılmış yapıyorum. Yeniden kod yazmak istiyorum ve bu nedenle başlangıçta bazı değişkenleri bildirmek ve bu komut onları yeniden kullanmak istiyorum

DEFINE stupidvar = 'stupidvarcontent';

SELECT stupiddata
FROM stupidtable
WHERE stupidcolumn = &stupidvar;

Nasıl bir değişken bildirmek ve yeniden izleyin ifadeleri miyim? (SQLDeveloper Oracle DB erişmek için kullanıyorum.)

Şimdiye kadar çalıştım:

  • Kullanın bir bölüm Ekle BEGIN END; aşağıdaki SEÇME deyimini BİLDİRİN. Erişimi değişken &stupidvar kullanarak.
  • Anahtar DEFINE kullanım ve değişken erişim.
  • Bu anahtar kelime kullanarak 10* *ve değişken erişim.

Ama benim deneme sırasında hatalar (,, SELECT INTO... Sözdizimi hatası Beklenen İlişkisiz değişken) her türlü alıyorum.

Net arama yaparken farklı bir çok açıklama, SQL, PL/SQL ile ilgili buluyorum.

Şimdiden teşekkürler!

CEVAP
25 AĞUSTOS 2010, ÇARŞAMBA


Artı komut SQL*değişkenleri bildirmek. birkaç yolu vardır.

İlk VAR kullanmaktır. Bir VAR değer ataması için bir mekanizma, bir EXEC çağrısı ile

SQL> var name varchar2(20)
SQL> exec :name := 'SALES'

PL/SQL procedure successfully completed.

SQL> select * from dept
  2  where dname = :name
  3  /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        30 SALES          CHICAGO

SQL>

VAR ÇIKIŞ parametreleri veya bir fonksiyonu olan bir saklı yordam aramak istediğinizde kullanışlıdır.

Klindamisin topikal krem değişkenleri kullanabiliriz Alternativley. Bu etkileşimli mod için iyi:

SQL> accept p_dno prompt "Please enter Department number: " default 10
Please enter Department number: 20
SQL> select ename, sal
  2  from emp
  3  where deptno = &p_dno
  4  /
old   3: where deptno = &p_dno
new   3: where deptno = 20

ENAME             SAL
---------- ----------
CLARKE            800
ROBERTSON        2975
RIGBY            3000
KULASH           1100
GASPAROTTO       3000

SQL>

Diğer komut çağıran yazıyoruz zaman değişkenleri ayarlıyoruz Tanımlamak için yararlı olabilir:

SQL> def p_dno = 40
SQL> select ename, sal
  2  from emp
  3  where deptno = &p_dno
  4  /
old   3: where deptno = &p_dno
new   3: where deptno = 40

no rows selected

SQL>

Nihayet anonim PL/SQL blok var. Gördüğünüz gibi, hala değişkenler etkileşimli olarak bildirilen değerler atayabiliriz:

SQL> set serveroutput on size unlimited
SQL> declare
  2      n pls_integer;
  3      l_sal number := 3500;
  4      l_dno number := &dno;
  5  begin
  6      select count(*)
  7      into n
  8      from emp
  9      where sal > l_sal
 10      and deptno = l_dno;
 11      dbms_output.put_line('top earners = '||to_char(n));
 12  end;
 13  /
Enter value for dno: 10
old   4:     l_dno number := &dno;
new   4:     l_dno number := 10;
top earners = 1

PL/SQL procedure successfully completed.

SQL>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006