bonjour,
J'ai un petit soucis avec le Caratère "&"
J'ai des inserts et certains champs contiennent &, je sais qu'il existe un moyen de ne pas tenir compte de & mais je ne sais plus lequel :oops:
Quelqu'un peut me rafraichir la mémoire
Merci
Version imprimable
bonjour,
J'ai un petit soucis avec le Caratère "&"
J'ai des inserts et certains champs contiennent &, je sais qu'il existe un moyen de ne pas tenir compte de & mais je ne sais plus lequel :oops:
Quelqu'un peut me rafraichir la mémoire
Merci
Je crois que tu parles de
Code:
1
2set define off
Laly.
non c'est :
Code:set scan off
avec
ça marche nickelCode:
1
2set scan off;
merci à tous les deux
Tu es sûr ?
Regardes :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SQL> set scan on SQL> set define on SQL> insert into TEST values ('&hello'); Enter value for hello: HELLO old 1: insert into TEST values ('&hello') new 1: insert into TEST values ('HELLO') 1 row created. SQL> set define off SQL> / 1 row created. SQL> select * from TEST; X ---------- HELLO &hello
Par contre je ne sais pas à quoi sert SCAN
Laly.
Orafrance,
Tu as aussi raison 8)
Code:
1
2
3
4
5
6
7
8 SQL> show scan scan OFF SQL> show define define "&" (hex 26) SQL> insert into TEST values ('&hello'); 1 row created.
Laly.
oui, j'suis sûr :D
DEFINE définit le caractère de marquage des variables alors que SCAN controle ou non la présence de variable
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a90842/apc.htm#634736
C'est comme à l'école des fans, on a tous les deux gagnés :lol:
Laly.
on peut faire aussi
Ce qui eviter d'oublier de remmettre les paramètres à ON.Code:
1
2 insert into TEST values ('&'||'hello');
Mais c'est pas très beau, et il faut décomposer les chaine de caractère.
Sygale,
Ce que tu dis est tout à fait correct. Mais souvent je désactive cette option, lorsque je dois passer à package entier à SQL*Plus, donc ca serait pénible lors de l'écriture de chaque requête de penser à décomposer les & (je suis pas maso, je développe avec des outils comme Toad ou PLSQL-Developper mais l'équipe chargée des mises en productions n'utilise que SQL*Plus)
Laly.
moi je développe que sous SQL*Plus 8)
j'suis maso moi :aie:
Tout à fait d'accord lalystar, cela peux être utile.
Un peux comme les double côtes dans les chaines de car.
Cependant, c'est super lourd à mettre en place !!!
Ici, on fait UEdit pour le code,Citation:
Envoyé par orafrance
des shells pour exécuter les scripts. (plus rapide sous unix)
Et toad, pour le dégugage de scripts lorsque dans 10 000 lignes de code l'erreur de compile dit Ligne 5678. Toad met le curseur direct sur La ligne et on modifie dans UE. etc ...
Sinon SQL*Plus, c'est assez rare !, mais tout est une question d'habitude !
Ben bon dev alors !
par sql*plus j'entends bien sûr une édition sous UE... j'utilise quand même pas notepad :D
Ah cela me rassure, il y a pire des mecs tapent directe les requetes sous ql*plus :P 8O :DCitation:
Envoyé par orafrance
Euh bah moi je le fais :oops:
Mais c'est vrai que je développe sous UltraEdit depuis qu'on ne peut plus utiliser Toad pour des problèmes de licenses. Entre PLSQL-Developper et Ultredit, je préfère UE.
Laly.
Non, pas d'accord !Citation:
Envoyé par orafrance
Comme l'indique la doc, SCAN est une fonction obsolète (mais qui fonctionne toujours) de SQL*Plus, qui est fonctionnellement remplacée et étendue par DEFINE.
L'apport de DEFINE par rapport à SCAN, c'est qu'en plus du ON/OFF, il permet de définir quel caractère sera considéré comme marqueur des variables de substitution.
Par défaut, ces variables sont introduites par &, mais ce caractère peut être librement défini.
J'utilise de temps en temps le caractère '}', quand le & ne doit pas être interprété mais que j'ai néanmoins besoin de variables de substitution.
oui on est d'accord... DEFINE permet de faire la même chose mais la commande dédié est SCAN :)
Orafrance : -1 désolé :aie:
Laly.