{Oracle} Oracle ( constante )
Yofa
-
Évidemment -
Évidemment -
Bonjour,
Alors voila! Ca peux paraître très bête comme question mais je ne trouves pas la réponse sur google...
J'ai un programme Oracle qui reste le même a chaque fois à l'exception d'une constante qui est le MOIS de l'extraction des données!
Le mois étant repris a plusieurs reprise dans le programme ( 7 a 8 fois ), je souhaiterais poser une constante 'MOIS' en début de programme pour un gain de temps et pour eviter les erreurs d'oubli...
Exemple : Constante MOIS = 'Mars'
select ...
From ...
Where Moisextraction = MOIS ...
En vous remerciant de vos reponses!
Alors voila! Ca peux paraître très bête comme question mais je ne trouves pas la réponse sur google...
J'ai un programme Oracle qui reste le même a chaque fois à l'exception d'une constante qui est le MOIS de l'extraction des données!
Le mois étant repris a plusieurs reprise dans le programme ( 7 a 8 fois ), je souhaiterais poser une constante 'MOIS' en début de programme pour un gain de temps et pour eviter les erreurs d'oubli...
Exemple : Constante MOIS = 'Mars'
select ...
From ...
Where Moisextraction = MOIS ...
En vous remerciant de vos reponses!
A voir également:
- {Oracle} Oracle ( constante )
- Oracle jre usage ✓ - Forum Virus
- Oracle 11g download windows 64-bit ✓ - Forum Oracle
- Telecharger oracle virtualbox - Télécharger - Émulation & Virtualisation
- Taille tablespace oracle - Forum Oracle
- Find oracle sid ✓ - Forum Bases de données
1 réponse
salut
tout d'abord, sache que la constante n'existe pas en PL/QSL. C'est à toi d'écrire du code qui ne modifie pas tes variables. tu peux adopter une méthode 'à la hongroise' et préfixer d'un k les identificateurs des variables que tu souhaites constantes, mais tu n'auras guère plus de protection
une méthode trrrès tirée par les cheveux serait de stocker ta constante dans une table et d'inclure cette table dans tes requêtes (la modification de cette valeur n'interviendrait que sur update et non avec une simple affectation). Mais si on est un tant soit peu réaliste, on se contente de faire attention (si les automates savaient faire attention, ils travailleraient à notre place)
1. tu désires une réelle constante
avant ton begin, poses une section DECLARE dans laquelle tu déclares une variable que tu initialises (et que tu ne toucheras plus dans ton code)
2. tu désires un constante "fonction de l'environnement", par ex une date horizon
/!\ si le code se trouve dans un trigger => pas de mot-clé declare
tout d'abord, sache que la constante n'existe pas en PL/QSL. C'est à toi d'écrire du code qui ne modifie pas tes variables. tu peux adopter une méthode 'à la hongroise' et préfixer d'un k les identificateurs des variables que tu souhaites constantes, mais tu n'auras guère plus de protection
une méthode trrrès tirée par les cheveux serait de stocker ta constante dans une table et d'inclure cette table dans tes requêtes (la modification de cette valeur n'interviendrait que sur update et non avec une simple affectation). Mais si on est un tant soit peu réaliste, on se contente de faire attention (si les automates savaient faire attention, ils travailleraient à notre place)
1. tu désires une réelle constante
avant ton begin, poses une section DECLARE dans laquelle tu déclares une variable que tu initialises (et que tu ne toucheras plus dans ton code)
create or replace procedure updMauvaisClients as declare nStatut number := 90; begin ...
2. tu désires un constante "fonction de l'environnement", par ex une date horizon
create or replace function heuresPrevues( paramCentre schema.commandes.centre%type ) return number declare kHorizon date; -- le k pour se rappeler qu'il faut pas lui affecter une valeur begin select trunc(max(dtLivPrevue)+30, 'MM') into kHorizon from schema.commandes where statut>=40 and centre = paramCentre; -- maintenant que kHorizon est initialisée, on n'y touche plus ...
/!\ si le code se trouve dans un trigger => pas de mot-clé declare