2016-02-04 7 views
1

Je souhaite récupérer ROWID d'une table d'Oracle DB et la stocker en mémoire en tant que tableau de caractères pour une utilisation ultérieure. Par exemple, je lance la requête suivante:Stockage ROWID de la table Oracle DB en tant que tableau de caractères

SELECT ROWID, MARKS FROM MTB WHERE EID='123'; 

Ensuite, en utilisant Pro * C, je voudrais stocker ce ROWID comme un tableau de caractères rrr à utiliser plus tard comme:

UPDATE MTB SET MARKS = 80 WHERE ROWID='<rrr>' 

S'il vous plaît aider et le point à la documentation appropriée de l'utilisation de Pro * C pour convertir un ROWID en un tableau de chaînes de caractères.

+0

Vous voulez dire [ROWIDTOCHAR] (http://docs.oracle.com/cd/E11882_01/server. 112/e41084/functions157.htm # SQLRF06101) et [chartorowid] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions025.htm#SQLRF00615)? Ou quelque chose de spécifique à C/Pro \ * C? –

+0

voulez-vous dire utiliser ROWIDTOCHAR (ROWID) au lieu de ROWID? –

Répondre

2

Vous pouvez utiliser les ROWIDTOCHAR et CHARTOROWID fonctions:

SELECT ROWIDTOCHAR(ROWID), MARKS INTO :rrr, :marks FROM MTB WHERE EID='123'; 

Et puis

UPDATE MTB SET MARKS = 80 WHERE ROWID=CHARTOROWID(:rrr);