Essayer dans le contexte de la transpositionJ'ai un script qui effectue une transposition de certaines données obtenues à partir d'une requête SQL. J'aimerais ajouter une certaine tolérance au script dans le sens où les colonnes exactes de la requête peuvent varier. Mon script actuel impose une série de colonnes qui doivent être présentes pour qu'il fonctionne et j'aimerais appliquer la fonctionnalité Try() d'une manière ou d'une autre pour tenir compte de la variance dans la requête SQL.
J'ai fait un exercice avec la transposition incluse dans une instruction try mais cela a échoué.
Automatisation et scriptsRé: Essai dans le contexte de la transpositionAvec quelle partie rencontrez-vous des problèmes ? Une requête SQL échoue parce que les noms de colonnes changent ? Ou un script JSL échoue parce qu'il n'obtient pas les colonnes qu'il attend ? Que doit-il se passer en cas de problème ?
Ré: Essai dans le contexte de la transpositionSQL extrait les données comme prévu, mais l'opérateur peut ne pas inclure toutes les colonnes que JMP s'attend à transposer. Le problème se produit alors au niveau de JMP, où des colonnes explicites sont nommées mais s'avèrent manquantes.
Le journal JMP indique
Colonne non trouvée dans l'accès ou l'évaluation de 'colonnes', mauvais argument ({:SAMPLE}).
Ré: Essai dans le contexte de la transpositionEt que faut-il faire dans ce cas ? Arrêter l'exécution du programme ? Ignorer cette partie du script ? Essayer d'obtenir les bonnes colonnes ?
Ré: Essai dans le contexte de la transpositionJe souhaite uniquement exécuter les colonnes qui sont réellement apparues et ne pas échouer à cause des colonnes manquantes. J'ai finalement besoin d'un script qui pardonne les différences dans la requête SQL, car de nombreux opérateurs doivent l'utiliser et des différences se produisent. L'un des avantages que j'ai est que la colonne Transpose (:VALUE) et la colonne Label (:PARAMETER) ont des titres fixes, j'ai creusé un peu cela avec l'aide des informations que j'ai trouvées ici et ailleurs, j'ai obtenu le script ci-dessous qui semble fonctionner.
Résolu : supprimer des éléments dans une liste - Communauté d'utilisateurs JMP
Merci pour l'aide.
dt = Current Data Table();
// List available columns
by_col_names = dt << get column names( "String" );
show(by_col_names);
// Remove Transpose and Label columns from list
delcols = {"VALUE", "PARAMETER"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( by_col_names, As List( Loc(by_col_names, delcols[i] ) ) );
);
// Transpose only if valid columns exist
If (N Items(by_col_names) > 0,
dt2 = dt << Transpose(
Columns(:VALUE),
By(
by_col_names
),
Label( :PARAMETER ),
Output Table( "Transpose of dt_data" )
);
);