2008-10-10 6 views
69

J'utilise Oracle SQL (dans SQLDeveloper, à l'aide de la feuille de calcul SQL). Je voudrais imprimer une déclaration avant ma sélection, commeTexte d'impression dans la fenêtre Feuille de calcul SQL d'Oracle SQL Developer

PRINT 'Querying Table1'; 
SELECT * from Table1; 

Que dois-je utiliser pour imprimer/afficher la sortie de texte? Ce n'est pas Print, parce que cela me donne l'erreur: La variable Bind Table1 n'est PAS DÉCLARÉE. DBMS_OUTPUT.PUT_LINE est une commande inconnue. (De toute évidence, je suis un sqldeveloper inexpérimenté et utilisateur Oracle Il doit y avoir synonyme d'impression, mais je vais avoir du mal à trouver de l'aide sur elle sans savoir ce qu'il est..)

Répondre

118

enter image description here

des commentaires simples:

set serveroutput on format wrapped; 
begin 
    DBMS_OUTPUT.put_line('simple comment'); 
end; 
/

-- do something 

begin 
    DBMS_OUTPUT.put_line('second simple comment'); 
end; 
/

vous devriez obtenir:

anonymous block completed 
simple comment 

anonymous block completed 
second simple comment 

si vous voulez imprimer les résultats des variables, voici un autre exemple:

set serveroutput on format wrapped; 
declare 
a_comment VARCHAR2(200) :='first comment'; 
begin 
    DBMS_OUTPUT.put_line(a_comment); 
end; 

/

-- do something 


declare 
a_comment VARCHAR2(200) :='comment'; 
begin 
    DBMS_OUTPUT.put_line(a_comment || 2); 
end; 

votre sortie doit être:

anonymous block completed 
first comment 

anonymous block completed 
comment2 
+1

Première ligne définie serveroutput sur le format enveloppé; devrait être définir serveroutput au format WRAPPED; – geographika

+0

Merci @geographika –

+0

bon, m'a aidé. +1 –

18

Vous pourriez set echo à sur:

set echo on 
REM Querying table 
select * from dual; 

Dans SQLDeveloper, appuyez sur F5 pour exécuter en tant que script.

+0

Je l'avais accepté comme une réponse, mais je vois une autre réponse a beaucoup plus de points, donc j'ai changé mon acceptation à cela. Cependant, cela a fonctionné pour moi, et c'est une bonne réponse. – thursdaysgeek

12

Vous pouvez mettre votre texte dans une instruction select tels que ...

SELECT 'Querying Table1' FROM dual; 
33
PROMPT text to print 

Note: doit utiliser Exécuter en tant que script (F5) not Instruction Run (Ctl + Entrée)

+0

Ceci est tellement utile. Merci! – sunlover3

6

Pour moi, je pouvais seulement le faire fonctionner avec

set serveroutput on format word_wrapped; 

Le wraped et enveloppées vient de jeter les erreurs: commande SQLPLUS a échoué - pas assez d'arguments

+1

Désagrément disparu! +1 –

1

Si vous ne voulez pas toutes vos instructions SQL à écho, mais vous voulez voir seulement la facilement identifiable les résultats de votre script, faites-le de cette façon:

set echo on

REM MyFirstTable

set echo off

delete from MyFirstTable;

set echo on

REM MySecondTable

set echo off

delete from MySecondTable;

la sortie de l'exemple ci-dessus ressemblera à quelque chose comme ceci:

-REM MyFirstTable

13 rows deleted.

-REM MySecondTable

27 rows deleted.