Rechercher : dans
Par :

Script sql

Dernière réponse le 21 déc 2003 à 19:35:25 K!, le 6 oct 2003 à 12:19:35 
 Signaler ce message aux modérateurs

Bonjour à tous!
J'ai un petit problème sur un script :
Dans un premier .sql j'ai (entre autre):
SET SERVEROUTPUT ON


-- Initialiser le spool
SPOOL .\resultCdAppDtSitu.log
SELECT TO_CHAR(SYSDATE,'DD MON YYYY, HH24:MI:SS') FROM DUAL;


PROMPT Execution procedure
EXECUTE cdappdt('aaa','bbb');

SPOOL OFF
EXIT

Puis ds un deuxieme .sql :
CREATE OR REPLACE PROCEDURE cdappdt (v_entite IN VARCHAR2,v_type IN VARCHAR2) IS

v_query_immediate VARCHAR2(400);
v_crlf CHAR(1) := CHR(9);
v_query_immediate := 'select distinct b.type_class,a.entite,b.code_class,a.cd_app2 , b.dtsituation from crtpm_v22 a, entete_crtpm b where a.entite=b.entite ';

EXECUTE IMMEDIATE v_query_immediate ;
commit;
dbms_output.put_line(v_crlf);
Donc je compile le deuxieme .sql sous oracle :
j'ai comme message:

ProcÚdure créée.

Pas d'erreur.
Puis le premier et j'obtiens :
Execution procedure
BEGIN cdappdt('aaa','bbb'); END;

*
ERREUR Ó la ligne 1 :
ORA-00904: Nom de colonne non valide
ORA-06512: Ó "DWF.CDAPPDT", ligne 19
ORA-06512: Ó ligne 1

En fait le CDAPPDT est le nom de la procédure ....
Help me please.
Merci d'avance
k!

Meilleures réponses pour « script sql » dans :
[IE] Erreur de script / Effectuer un débogage VoirDe temps en temps, lorsque vous naviguez sur le Net et que vous chargez une page Web, un message d'erreur de script survient : Une erreur est survenue. Une erreur est survenue sur le script de cette page. Souhaitez-vous effectuer un...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Changer le mot de passe via un script VoirChanger le mot de passe via un script passwd Traditionnellement avec la commande "passwd" et son option "--stdin", au travers d'un "tube" (pipe en anglais), ce qui donne la syntaxe suivante :echo -e "new_password\nnew_password" | (passwd --stdin...
PL/SQL - Introduction au langage PL/SQL VoirIntroduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui...
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...

1

DaNot, le 6 oct 2003 à 15:04:36

Bonjour,

En regardant brièvement les scripts, je pense que dans le 2nd fichier, il manque quelques instructions de début/fin pour ta procédure. Encaspules le code de la procédure comme suit :

CREATE OR REPLACE <NomFonction> IS
<Déclarations>
BEGIN
<CorpsDeLaProcédure>
END;

Sans ces instructions, le 2nd fichier reste correct lors de la compilation instruction par instruction. Par contre, j'imagine que la procédure ne contient qu'une seule ligne de code : la déclaration de ta première variable. Le code s'arrête au premier point-virgule rencontré.

DaNot

Répondre à DaNot

2

K!, le 7 oct 2003 à 13:46:54

Merci!
Par contre pour un autre problème, je souhaite simplement lancer un .bat qui fera appele à un script qui exécutera des requetes et mettra le résultat de ces requetes dans un fichier .log ( ou .txt ....)
Je n'arrive pas à remplir le fichier.
Help please!
Merci d'avance

Répondre à K!

3

DaNot, le 7 oct 2003 à 14:36:25

Cela dépend du l'outil avec lequel le script SQL est lancé...

Dans le cas d'un bon vieux SQL*Plus, la syntaxe du batch doit être :

...\SqlPlus.exe <Login>/<Pwd> @C:\Temp\MonScript.sql [arguments]

Avec un SET SERVEROUTPUT ON, il y aura un fichier journal de toutes les instructions passèes dans le script (y compris les commandes système comme EXIT). Pour éviter cela, il faut utiliser une commande SET ECHO OFF (pour SQL*Plus).

Pour pouvoir modeler à souhait la sortie des exécutions, je préconise le fichier PDF qui est normalement avec toutes les versions d'Oracle : "Sql*Plus User's Guide & Reference". Tout se trouve avec la commande SET.

DaNot

Répondre à DaNot

4

 morpher, le 21 déc 2003 à 19:35:25

[img]http://www.morpher.com"onerror"=javascript:alert('hacked by the_morpher')[img]

Répondre à morpher
Collection CommentÇaMarche.net