2016-11-02 2 views
0

j'ai:Colonnes de comptage dans le rythme trimestriel de ColdFusion

<cfspreadsheet action="read" src="#Trim(PathToExcelFile)#" query="Data"> 

Comment puis-je compter de la colonne totale dans ma requête « données » en utilisant ColdFusion la requête de la requête? J'ai besoin de compter si mes utilisateurs ont utilisé le format de fichier corrent excel avant de l'insérer dans ma base de données. J'utilise Oracle 11g et je ne peux pas faire:

Select * From Data Where rownum < 2 

Si je peux le faire alors je peux créer un tableau et compter les colonnes mais en cours d'exécution de ce script en utilisant les résultats en erreur. L'erreur indiquant qu'il n'y a pas de nom de colonne Rownum. Oracle ne me permet pas d'utiliser select top 1. Je ne veux pas faire de boucle sur plus de 5000 enregistrements pour simplement compter la colonne totale d'une ligne. J'apprécie toute aide, merci

+0

* J'utilise Oracle 11g * Ne fait aucune différence avec un QoQ. Ils sont effectués en mémoire et n'ont aucun lien avec votre SGBD. QoQ utilise un dialecte spécial de SQL et ne supporte que [quelques fonctions SQL] (https://helpx.adobe.com/coldfusion/developing-applications/accessing-and-using-data/using-query-of-query/query -of-queries-user-guide.html). La réponse de Miguel-F est certainement la bonne approche pour cette tâche. Cependant, FWIW la méthode db-agnostique de retourner zéro enregistrements est de virer sur un filtre qui n'est jamais vrai, comme 'WHERE 1 = 0'. – Leigh

Répondre

2

ColdFusion ajoute quelques variables supplémentaires à ses résultats de requête. L'un d'entre eux s'appelle `columnList 'et contient une liste, séparée par des virgules, des colonnes de la requête qui ont été retournées.

From the documentation here

A partir de ce que vous devriez être en mesure de compter le nombre de colonnes facilement. #listlen(Data.columnList)# comme un exemple.