set serveroutput dans la procédure oracle
J'ai créé une procédure simple. Dans cette procédure, je veux de sortie des données. Cependant, si jamais j'ai mis
set serveroutput sur
il dit
Erreur(26,5): PLS-00103: Rencontré le symbole "SERVEROUTPUT" lorsque attend l'une des opérations suivantes: . ( ) , * @ % & = - + < /> dans le mod reste pas rem => <> ou != ou ~= >= <= <>, et ou comme like2 like4 likec entre || multiset membre submultiset
Il n'importe pas où je l'ai mis, il n'arrête pas de dire ça.
create or replace PROCEDURE discount
is --- signature
BEGIN --- executable part
update dvd set me_our_price = me_our_price*0.90 WHERE me_release_year = 2011;
update dvd set me_our_price = me_our_price*0.80 WHERE me_release_year = 2010;
update bluray set me_our_price = me_our_price*0.95 WHERE me_release_year = 2011;
update bluray set me_our_price = me_our_price*0.90 WHERE me_release_year = 2010;
DBMS_OUTPUT.PUT_LINE(' Blurays ');
for i in (
SELECT e.mo_title, e.mo_bluray.me_list_price as me_list_price, e.mo_bluray.me_our_price as me_our_price FROM movie e where e.mo_bluray is not null
)
loop
DBMS_OUTPUT.PUT_LINE(i.mo_title|| ' ' || i.me_list_price|| ' ' || i.me_list_price);
end loop;
DBMS_OUTPUT.PUT_LINE(' DVDs ');
for i in (
set serveroutput on
SELECT e.mo_title, e.mo_dvd.me_list_price as me_list_price, e.mo_dvd.me_our_price as me_our_price FROM movie e where e.mo_dvd is not null
)
loop
DBMS_OUTPUT.PUT_LINE(i.mo_title|| ' ' || i.me_list_price|| ' ' || i.me_list_price);
end loop;
END discount;
- Déplacer set serveroutput sur l'avant de la créer au top
- La procédure doit toujours sortie. Non pas que je dois d'abord mettre set serveroutput et puis exécutez la procédure
- dbms_output.enable();
- où dois-je mettre? Où je l'ai mis il dit
code
Erreur(4,12): PLS-00103: Rencontré le symbole "." lorsque attend l'une des opérations suivantes: constante d'exception <un identificateur> <un double-cité délimité par l'identificateur> tableau long double réf char time timestamp date d'intervalle binaire caractère national ncharcode
- Droit après avoir commencer
- orafaq.com/forum/t/14373/2
- merci bro, qui a fait le tour!
- Fantastique!!!! Heureux, il a travaillé
Vous devez vous connecter pour publier un commentaire.
Pour comprendre l'utilisation de "SET SERVEROUTPUT SUR" je vais prendre un exemple
Avec une puissance de sortie : PL/SQl procédure terminée avec succès je me.e sans attendre une sortie
Et la raison principale est que ,quoi que nous de passer à l'intérieur dbms_output.put_line(' ARGUMENT '/VALEURS) c'est à dire ARGUMENT/VALEURS , est stockée en interne à l'intérieur d'un tampon dans SGA(Globale commune de la Zone ) zone de mémoire jusqu'à 2000 octets .
*NOTE :***il convient Toutefois de noter que ce tampon n'est créé que lorsque nous utilisons **dbms_output paquet. Et nous avons besoin de définir la variable d'environnement qu'une seule fois pour une session !!
Et afin de l'extraire de la mémoire tampon, nous avons besoin de définir la variable d'environnement pour la session . Il fait beaucoup de confusion pour les débutants que nous sommes réglage de la sortie du serveur ( parce que de sa nomenclature ) , mais malheureusement sa n'a rien à voir . À l'aide de DÉFINIR le SERVEUR de SORTIE SUR sont tout simplement dire que le PL/SQL moteur de
*Hey s'il vous plaît d'impression de l'ARGUMENT/VALEURS que je serai de passage à l'intérieur de dbms_output.put_line
et à son tour, PL/SQl moment de l'exécution du moteur imprime l'argument sur la console principale .
Je pense que je suis clair pour vous tous . Vous souhaite à tous le meilleur .
Pour en savoir plus à ce sujet avec le structure architecturale de Serveur Oracle Moteur vous pouvez voir ma réponse sur Quora http://qr.ae/RojAn8
Et pour répondre à votre question ", On devrait utiliser de SERVEUR de SORTIE dans le début de la session. "
"SET serveroutput on" est un SQL*Plus de commande et n'est pas valide PL/SQL.
D'abord ajouter le code suivant dans votre sp:
Compiler votre code dans votre Oracle SQL developer. Donc, allez dans le Menu Affichage--> sgbd de sortie. Cliquez sur l'Icône Vert Plus et sélectionnez votre schéma. Exécutez votre sp maintenant.
En fait, vous avez besoin d'appeler
SET SERVEROUTPUT ON;
avant laBEGIN
appel.Tout le monde l'a suggéré mais n'offre pas de conseils où effectivement mettre la ligne:
Sinon, vous ne verrez pas de sortie.