# Bases de donnes > Oracle > Apex >  Nombre de caractres dans une LOV

## teen6517

Bonjour tout le monde 

Je dveloppe sous apex depuis un peu plus de 4 ans mais aujourd'hui je suis bloqu sur une LOV pour une Liste Select  ::aie:: 

Ma requte pour cette LOV fait 7174 caractres mais les LOV sont limites a 4000 caractres.
Quelqu'un sait comment augmenter cette taille??

Merci pour votre aide

----------


## McM

Je ne pense pas que ce soit possible d'augmenter la taille.

Erreur en mettant une requte SQL de plus de 4000 car : "ORA-01461: can bind a LONG value only for insert into a LONG column "

Par contre, tu peux modifier ta requte de LOV pour en faire une function de type PIPELINED http://sheikyerbouti.developpez.com/...age=Chap4#L4.4
Du coup, la dfinition dans Apex sera courte, et tu peux mettre ce que tu veux en PLSQL.

----------


## teen6517

Merci pour cette piste 

Je vais voir ce que a donne.

Si je n'y arrive pas, pourras-tu me donner un exemple de fonction et comment l'appeler dans Apex ?

Je commence par regarder ton lien 
Merci

----------


## McM

Bien sur, si tu n'y arrives pas, je te ferai un exemple, le forum sert  a  ::mrgreen::

----------


## teen6517

Voici ou j'en suis :

on va dire que a c'est ma requte qui fait 7000 caractre :


```

```


J'ai crer 2 objet comme le disais ton lien


```

```


ensuite j'ai crer la fonction suivante : 


```

```


Le problme c'est que quand je veux utiliser tout a pour l'instant je dois utiliser :


```

```


Mais si je dois passer tout le cursor en paramtre (mon cursor va etre trop gros pour rentrer dans la LOV

Je comprend pas comment faire pour pouvoir faire la mme chose mais en dclarent mon cursor dans ma fonction et non en paramtre.

Je sais pas si je suis trs claire

Du coup si tu a un exemple tout simple pour comprendre je suis preneur 
Merci ::):

----------


## McM

Ah.. en fait il manque quelque chose surement dans le tuto.

Ta fonction peut tout grer, tu peux y passer des paramtres



```

```

Ensuite il te suffit d'appeler par


```

```

----------


## teen6517

Merci pour ton aide McM
Je test tout a des que possible et je ne manquerais pas de te dire si a marche ou non.

Sinon il y a une autre solution au problme que je n'ai pas encore test.

L'ide consiste a crer une vue, correspondant  la requte et retournant deux colonnes seulement, avec comme alias de colonnes   
D  (ce que la vue affiche) et R la (cl  que la LOV va retourner).

Il est possible dans la vue de faire rfrence aux valeurs des lment APEX avec par exemple  

v('P2_CRITERE')   ou nv  ('P_NUMERO')

Il suffira ensuite dans la dfinition dappeler la vue avec  par exemple :



```

```


C'est aussi une piste, elle te servira peu tre un jour.  :;):

----------


## teen6517

Bonjour McM

Je pense que je ne suis plus tres loin mais je n'arrive pas  finaliser.

Voix-tu m'on erreur??

Voici le code de ma fonction :


```

```

Le statut de cette fonction est Valide


Puis j'excute la requete suivante : 


```

```


Mais j'ai le message d'erreur suivant : 
 15:33:40  [SELECT - 0 row(s), 0.000 secs]  [Error Code: 1722, SQL State: 42000]  ORA-01722: Nombre non valide
ORA-06512:  "MOUV65.LOV_AGENT_P10_V2", ligne 14
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec  [0 successful, 0 warnings, 1 errors]

Je suis a cour d'ide, j'espere que tu vas voir o a coince

----------


## McM

J'ai corrig mon post (j'avais laiss 2 rbat. au lieu de r.)
Vire de ton code tout ce qui est inutile, prfre un FOR LOOP  un Open Curseur  (qu'il faut fetcher, fermer, etc..)

Pour dbugguer, vire le paramtre de ta fonction, histoire d'avoir un code minimaliste qui marche (et liminer le max de problme qui pourrait survenir)



```

```



```
SELECT * FROM TABLE ("MOUV65"."LOV_AGENT_P10_V2");
```

----------

