Prise en charge de l’API de pilote JDBC¶
Le pilote Snowflake JDBC est un pilote JDBC de type 4 qui prend en charge la fonctionnalité centrale JDBC de la version 1.0 de l’API JDBC. Pour connaître la référence complète de l’API, consultez la documentation Java SE sur les technologies. Vous pouvez essayer les méthodes des versions ultérieures de l’API, mais Snowflake ne garantit pas que ces méthodes sont prises en charge.
Le pilote JDBC de Snowflake nécessite Java LTS (Long-Term Support) 1.8 (ou une version supérieure). Le pilote nécessite le paquet java.sql
, inclus dans les éditions Standard Edition (SE) et Enterprise Edition (EE) de Java. À compter du mois d’août 2019, la documentation du paquet java.sql
est disponible à l’adresse https://docs.oracle.com/javase/8/docs/api/java/sql/package-summary.html.
Le pilote peut être utilisé avec la plupart des outils/applications clients prenant en charge JDBC pour la connexion à un serveur de base de données.
Cette rubrique ne documente pas l’intégralité de l’API JDBC. Au lieu de cela, elle :
Répertorie les interfaces prises en charge à partir de l’APIJDBC et les méthodes prises en charge dans chaque interface.
Documente les zones où Snowflake étend la norme de l’API JDBC.
Documente les zones où la norme de l’API JDBC est ambiguë et l’implémentation de Snowflake peut se comporter différemment des autres systèmes.
En général, si une méthode est appelée et échoue, elle lève une exception (par exemple, SQLException
).
Les interfaces JDBC prises en charge sont répertoriées par ordre alphabétique et associées aux classes d’extension Snowflake correspondantes (le cas échéant).
Dans ce chapitre :
Objet : CallableStatement
¶
CallableStatement est utilisé pour exécuter une procédure stockée.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Méthodes non prises en charge |
|
Aucun. |
Comportement spécifique à Snowflake¶
Aucun.
Interface : SnowflakeCallableStatement
¶
L’interface SnowflakeCallableStatement contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type CallableStatement, par exemple en appelant la méthode Connection.prepareCall(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface JDBC CallableStatement et l’interface SnowflakeCallableStatement. Pour accéder aux méthodes SnowflakeCallableStatement de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Nom de la méthode |
Description |
---|---|
|
Renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce |
- getQueryID()¶
- But:
Cette méthode renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce
CallableStatement
. Si aucune requête n’a encore été exécutée avec CallableStatement, la méthode renvoie la valeur null.- Arguments:
Aucun.
- Renvoie:
Cette méthode renvoie l’ID en tant que chaîne contenant un UUID. Des informations sur les UUIDs sont incluses dans la description de la fonction SQL UUID_STRING.
- Lève:
La méthode peut lever une
SQLException
.
Objet : Connection
¶
Un objet Connection
représente une connexion à un serveur de base de données. L’objet de connexion permet aux utilisateurs non seulement de se connecter à un serveur de base de données particulier, mais également de créer des objets Statement
pouvant être utilisés pour exécuter des instructions SQL.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous) |
|
|
|
|
|
|
|
L’appel de cette méthode lève une |
|
L’appel de cette méthode lève une |
|
|
|
|
Méthodes non prises en charge |
|
|
|
|
Comportement spécifique à Snowflake¶
close()
Ferme l’objet. Après la fermeture d’un objet, l’appel de n’importe quelle méthode de cet objet fermé lève une
SQLException
. L’appel declose
sur un objet déjà fermé est sans danger et ne lève pas d’exception.
getMetaData()
Vous permet d’obtenir des métadonnées sur le pilote JDBC et Snowflake. Par exemple, vous pouvez savoir si les transactions sont prises en charge.
Pour plus d’informations sur les méthodes que vous pouvez appeler sur la valeur renvoyée, voir Objet : DatabaseMetaData.
prepareStatement(String sql)
Cette méthode renvoie un objet
preparedStatement
qui peut être utilisé pour exécuter l’instruction SQL. La méthodeexecute()
de l’objetpreparedStatement
peut être appelée pour exécuter l’instruction. L’instruction peut être exécutée telle quelle ou après la liaison de valeurs à l’instruction.Note
Dans certains systèmes, une fois qu’une instruction a été préparée, cette instruction peut être exécutée à plusieurs reprises sans la recompiler. Préparer une fois et exécuter à plusieurs reprises peut économiser un peu de temps et de ressources.
Dans Snowflake, prepareStatement() ne compile pas le code. À la place,
PreparedStatement.execute()
,PreparedStatement.executeQuery()
etPreparedStatement.executeUpdate()
compilent et exécutent l’instruction. Par conséquent, préparer l’instruction avant exécution ne permet pas d’économiser des ressources par rapport à la simple utilisation deStatement.execute()
.prepareCall(String sql)
prepareCall(String sql, boolean)
prepareCall(String sql, int, int)
prepareCall(String sql, int, int, int)
Comme dans la plupart des implémentations JDBC, les méthodes
prepareCall
peuvent être utilisées pour lier des paramètres à une procédure stockée. Par exemple, ce qui suit est pris en charge :CallableStatement stmt = testConnection.prepareCall("call read_result_set(?,?) ");
Toutefois, dans le pilote Snowflake JDBC, les méthodes
prepareCall
ne prennent pas en charge la syntaxe? =
pour gérer la liaison de la valeur de retour d’une procédure stockée. Par exemple, la commande suivante n’est pas prise en charge :CallableStatement stmt = testConnection.prepareCall("? = call read_result_set() "); -- INVALID
Interface : SnowflakeConnection
¶
L’interface SnowflakeConnection contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type Connection, par exemple en appelant la méthode DriverManager.getConnection(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface de connexion JDBC et l’interface SnowflakeConnection. Pour accéder aux méthodes SnowflakeConnection de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Ces méthodes s’ajoutent aux méthodes prises en charge par l’interface JDBC Connection
.
Nom de la méthode |
Description |
---|---|
|
Étant donné l’ID de requête d’une instruction SQL lancée de manière asynchrone, récupère les résultats de la requête et les renvoie dans un objet ResultSet. |
|
Télécharge un fichier à partir de la zone de préparation interne donnée et renvoie un InputStream. |
|
Obtient l’ID de la session en cours. |
|
Méthode |
|
Compresse les données d’un flux et les télécharge vers le chemin et le nom de fichier spécifiés dans une zone de préparation interne. |
- public ResultSet createResultSet(String queryID)
- But:
Étant donné le queryID d’une instruction SQL lancée de manière asynchrone, récupère les résultats de la requête et les renvoie dans un objet ResultSet.
Cette méthode peut généralement être appelée jusqu’à 24 heures après la fin de l’instruction SQL.
- Arguments:
queryID : l’ID de la requête dont vous souhaitez les résultats.
- Renvoie:
Le ResultSet. Si la requête n’est pas encore terminée, le serveur renvoie un ResultSet « vide ». L’utilisateur peut appeler
resultSet.unwrap(SnowflakeResultSet.class).getStatus()
pour savoir quand les données sont disponibles.- Lève:
Cette méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’objet de connexion.
- Exemples:
ResultSet resultSet; resultSet = connection.unwrap(SnowflakeConnection.class).createResultSet(queryID);
Voir Exemples de requêtes asynchrones pour un exemple plus complet qui inclut un appel à cette méthode.
- public InputStream downloadStream(String stageName, String sourceFileName, boolean decompress)
- But:
Cette méthode télécharge un fichier à partir de la zone de préparation interne donnée et renvoie un flux d’entrée.
- Arguments:
stageName : nom de la zone de préparation.
sourceFileName : chemin du fichier en zone de préparation.
decompress : « true » si le fichier est compressé.
- Renvoie:
Cette méthode renvoie un InputStream.
- Lève:
Cette méthode lève une SQLException si une erreur SQL se produit.
- Exemples:
Pour un exemple partiel, voir Télécharger des fichiers de données directement depuis une zone de préparation interne vers un flux.
- public String getSessionID()
- But:
Cette méthode retourne l’ID de la session en cours.
- Arguments:
Aucun
- Renvoie:
Renvoie l’IDde session sous forme de chaîne.
- Lève:
Cette méthode lève une SQLException si une erreur SQL se produit, par exemple si la connexion est fermée.
- Notes sur l’utilisation:
Étant donné que l’ID de session ne change pas tant que la connexion est ouverte, l’ID de session est mis en cache localement (au lieu d’être récupérée du serveur chaque fois) pour améliorer les performances.
- public prepareStatement(String sql, Boolean skipParsing)
Cette méthode est obsolète. Le paramètre skipParsing n’affecte plus le comportement de la méthode ; cette méthode se comporte comme la méthode
prepareStatement(String sql)
, quel que soit le réglage du paramètre skipParsing.Le nouveau code doit utiliser la méthode
prepareStatement(String sql)
.Le cas échéant, le code existant qui utilise la version à deux arguments de cette méthode doit être mis à jour pour utiliser la méthode à un argument
prepareStatement(String sql)
.
- public void uploadStream(String stageName, String destPrefix, InputStream inputStream, String destFileName, boolean compressData)
- But:
Cette méthode compresse les données d’un flux et les charge à un emplacement de zone de préparation interne. Les données seront chargées en un seul fichier. Aucun fractionnement n’est effectué dans cette méthode.
- Arguments:
stageName : nom de la zone de préparation (par exemple,
~
ou nom de la table ou nom de la zone de préparation).destPrefix : chemin/préfixe sous lequel les données doivent être chargées dans la zone de téléchargement.
inputStream : flux d’entrée à partir duquel les données seront chargées.
destFileName : nom du fichier de destination à utiliser.
compressData : compressez ou non les données avant de charger le flux.
- Renvoie:
Rien.
- Lève:
Cette méthode lève une
java.sql.SQLException
si elle ne parvient pas à compresser et à mettre les données d’un flux dans la zone de préparation.- Remarques:
L’appelant est responsable de la libération de
inputStream
après l’appel de la méthode.- Exemples:
Pour un exemple partiel, voir Charger des fichiers de données directement depuis un flux vers une zone de préparation interne.
Objet : DatabaseMetaData
¶
La classe DatabaseMetaData fournit des informations sur les fonctionnalités prises en charge par le serveur de base de données (dans ce cas, Snowflake).
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prend en charge les caractères génériques pour l’argument |
|
Prend en charge les caractères génériques pour les arguments |
|
Prend en charge null pour les arguments |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prend en charge null pour les arguments |
|
|
|
Prend en charge les caractères génériques pour les arguments |
|
Prend en charge les caractères génériques pour les arguments |
|
|
|
Prend en charge null pour les arguments |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prend en charge null pour les arguments |
|
Prend en charge les caractères génériques pour les arguments |
|
Prend en charge les caractères génériques pour les arguments |
|
|
|
|
|
Prend en charge les caractères génériques pour l’argument |
|
|
|
|
|
|
|
|
|
Prend en charge les caractères génériques pour les arguments |
|
|
|
|
|
Prend en charge les caractères génériques pour les arguments |
|
Prend en charge les caractères génériques pour les arguments |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Méthodes non prises en charge |
|
|
|
|
Comportement spécifique à Snowflake¶
- public ResultSet getColumnPrivileges(String, String, String, String)
Cette méthode renvoie toujours un ensemble vide car Snowflake ne prend pas en charge les privilèges au niveau des colonnes.
- public ResultSet getStreams(String, String, String)
- But:
Cette méthode renvoie des informations sur les flux contenus dans les bases de données et les schémas spécifiés.
- Arguments:
originalCatalog
: Nom de la base de données.orignalSchemaPattern
: modèle pour identifier le schéma (prend en charge les caractères spéciaux).streamName
: Nom du flux (prend en charge les caractères spéciaux).
- Renvoie:
Cette méthode renvoie un
ResultSet
contenant des lignes pour chaque flux, chaque ligne comprenant les colonnes suivantes :name
: nom du flux.database_name
: nom de la base de données pour le schéma contenant le flux.Un objet de base de données (par exemple, un flux) est contenu dans un schéma, qui est lui-même contenu dans une base de données.
schema_name
: nom du schéma contenant le flux.owner
: rôle qui possède le flux.comment
: commentaires associés au flux.table_name
: nom de la table dont les mises à jour DML sont suivies par le flux.source_type
: objet source du flux. Les valeurs possibles sont les suivantes :table
view
directory table
external table
base_tables
: tables sous-jacentes de la vue. Cette colonne s’applique aux flux sur les vues uniquement.type
: type du flux. Actuellement, la fonction retourne toujours unDELTA
.stale
: indique si le flux a été lu pour la dernière fois avant que le délaistale_after
ne soit écoulé. SiTRUE
, le flux peut être obsolète.Lorsqu’un flux est périmé, il ne peut pas être lu. Vous pouvez recréer le flux pour en reprendre la lecture. Pour éviter qu’un flux ne devienne obsolète, vous devez consommer le flux avant que le délai
stale_after
ne soit écoulé.mode
: type de flux. Les valeurs possibles sont les suivantes :APPEND_ONLY
: indique si le flux est un flux d’ajout uniquement.INSERT_ONLY
: indique que le flux ne renvoie que des informations relatives aux lignes insérées. Cette valeur s’applique uniquement aux flux sur les tables externes.DEFAULT
: indique que le flux est sur les tables.
- Lève:
Cette méthode lève une
SQLException
si une erreur SQL se produit.
Prise en charge des paramètres null¶
Certaines méthodes DatabaseMetaData acceptent des valeurs null
pour les noms d’objets de base de données (par exemple, noms de table/catalogue). Par défaut, une valeur null
signifie que la méthode ne filtre pas sur cet argument. Par exemple, si vous passez getColumns()
une valeur null
pour l’argument schemaPattern
, alors getColumns()
renvoie des valeurs pour tous les schémas.
Pour certaines de ces méthodes, le comportement par défaut des arguments null
peut être remplacé par les paramètres suivants :
Prise en charge des caractères génériques dans les noms d’objets de base de données¶
Certaines méthodes DatabaseMetaData prennent en charge les caractères génériques de filtrage par motif dans les noms d’objets de base de données, tels que les noms de table/catalogue. Les caractères génériques pris en charge sont les suivants :
%
: correspond à toute chaîne de zéro caractère ou plus._
: correspond à n’importe quel caractère.
L’exemple suivant montre ce qu’il faut passer à la méthode getColumns()
pour obtenir les noms de toutes les tables et de toutes les colonnes de la base de données (TEMPORARYDB1
) et du schéma (TEMPORARYSCHEMA1
) spécifiés :
getColumns( connection,
"TEMPORARYDB1", // Database name.
"TEMPORARYSCHEMA1", // Schema name.
"%", // All table names.
"%" // All column names.
);
Il est courant que les noms d’objets de base de données, tels que les noms de table, contiennent des traits de soulignement, par exemple SHIPPING_ADDRESSES
. La recherche de SHIPPING_ADDRESSES
sans isoler le trait de soulignement trouvera non seulement la table nommée SHIPPING_ADDRESSES
, mais aussi des tables telles que SHIPPING2ADDRESSES
. Si vous souhaitez rechercher SHIPPING_ADDRESSES
mais pas SHIPPING2ADDRESSES
, vous devez isoler le caractère générique pour indiquer que vous souhaitez qu’il soit traité comme un littéral. Pour isoler le caractère, faites-le précéder d’une barre oblique inverse.
La barre oblique inverse doit également être isolée si vous souhaitez l’utiliser comme caractère littéral. Par exemple, pour rechercher une table nommée T_&
, dans laquelle le trait de soulignement, le signe esperluette et la barre oblique inverse sont des parties littérales du nom, et non des caractères génériques ou des caractères d’échappement, l’appel de méthode doit ressembler à ce qui suit :
getColumns(
connection, "TEMPORARYDB1", "TEMPORARYSCHEMA1", "T\\_\\\\", "%" // All column names.
);
Chaque barre oblique inverse ci-dessus doit être échappée une fois de plus, car le compilateur Java s’attend à ce que les barres obliques inverses soient échappées :
Java sees...............: T\\_\\%\\\\
SQL sees................: T\_\%\\
The actual table name is: T_%\
Objet : Driver
¶
Le pilote fournit des méthodes qui vous permettent d’établir une connexion à la base de données et d’obtenir des informations sur le pilote lui-même.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake¶
Aucun.
Exemples¶
L’extrait de code suivant montre une partie d’un programme pour obtenir des informations sur les propriétés :
// Demonstrate the Driver.getPropertyInfo() method.
public static void do_the_real_work(String connectionString) throws Exception {
Properties properties = new Properties();
Driver driver = DriverManager.getDriver(connectionString);
DriverPropertyInfo[] dpinfo = driver.getPropertyInfo("", properties);
System.out.println(dpinfo[0].description);
}
Notez que dans le cas général, l’appel à cette méthode doit être à l’intérieur d’une boucle. Si vous récupérez des informations sur une propriété, puis définissez cette propriété, le nouveau paramètre peut rendre les propriétés supplémentaires pertinentes, vous devrez donc peut-être les récupérer et les définir.
Objet : ParameterMetaData
¶
Cela fournit des informations sur les paramètres dans un PreparedStatement.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
|
|
|
|
|
|
|
Méthodes non prises en charge |
|
|
|
|
|
|
Comportement spécifique à Snowflake¶
Aucun.
Objet : PreparedStatement
¶
L’interface PreparedStatement décrit des méthodes permettant, par exemple, d’exécuter des requêtes.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
Méthodes non prises en charge |
|
|
|
|
|
|
Comportement spécifique à Snowflake¶
addBatch()
Pris en charge pour les instructions INSERT uniquement.
La méthode
addBatch
(associée àexecuteBatch
) permet d’insérer plusieurs lignes de données dans une seule instruction INSERT.La différence entre utiliser un lot et ne pas utiliser de lot est similaire à la différence entre utiliser une insertion de plusieurs lignes et une insertion à une seule ligne :
INSERT INTO t1 (c1, c2) VALUES (1, 'One'); -- single row inserted. INSERT INTO t1 (c1, c2) VALUES (1, 'One'), -- multiple rows inserted. (2, 'Two'), (3, 'Three');
Insérer des lots de lignes est généralement plus efficace qu’insérer le même nombre de lignes dans des instructions
INSERT
individuelles. L’avantage est encore plus grand lorsque vous utilisez AUTOCOMMIT (c’est-à-dire lorsque chaque INSERT est une transaction individuelle).Pour un exemple d’utilisation de
addBatch
, voir Insertions par lots.Note
Il existe une limite supérieure à la taille des données que vous pouvez lier ou que vous pouvez combiner dans un lot. Pour plus de détails, voir Limites de la taille du texte de requête.
execute()
Cette méthode compile et exécute l’instruction SQL fournie lors de la création de l’objet
PreparedStatement
. L’instruction peut être n’importe quel type d’instruction SQL. La méthodeexecute()
ne renvoie pas unResultSet
.Cette méthode ne renvoie rien. Si vous exécutez une requête et souhaitez obtenir un
ResultSet
lors de l’exécution de l’instruction, utilisez la méthodeexecuteQuery()
.executeQuery()
Cette méthode compile et exécute l’instruction SQL fournie lors de la création de l’objet
PreparedStatement
et renvoie unResultSet
.executeUpdate()
Cette méthode compile et exécute l’instruction SQL fournie lors de la création de l’objet
PreparedStatement
. L’instruction doit être une instruction DML (INSERT, UPDATE, DELETE, etc.) ou une instruction SQL qui ne renvoie rien (par exemple, une instruction DDL).La méthode
executeUpdate()
renvoie un entier, qui correspond au nombre de lignes mises à jour si l’instruction était une instruction DML. Si l’instruction n’a mis à jour aucune ligne, la fonction renvoie0
.Si vous devez exécuter une instruction SQL renvoyant un ResultSet, utilisez une autre méthode, telle que executeQuery().
setObject()
Lorsque vous liez une variable d’horodatage à une colonne d’horodatage, vous pouvez utiliser cette méthode pour spécifier la variation d’horodatage (TIMESTAMP_LTZ , TIMESTAMP_NTZ , TIMESTAMP_TZ) qui doit être utilisée pour interpréter la valeur d’horodatage. Pour plus de détails, voir Liaison de variables à des colonnes d’horodatage.
Interface : SnowflakePreparedStatement
¶
L’interface SnowflakePreparedStatement contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type PreparedStatement, par exemple en appelant la méthode Connection.prepareStatement(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface JDBC PreparedStatement et l’interface SnowflakePreparedStatement. Pour accéder aux méthodes SnowflakePreparedStatement de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Les méthodes ci-dessous s’ajoutent à celles prises en charge par l’interface PreparedStatement
.
Nom de la méthode |
Description |
---|---|
|
Exécute une requête asynchrone. |
|
Renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce |
- executeAsyncQuery()¶
- But:
Cette méthode effectue une requête asynchrone, ce qui implique de soumettre une instruction SQL pour exécution, puis de renvoyer le contrôle à l’appelant sans attendre la fin de la requête.
Toute instruction SQL valable pour
executeQuery()
l’est également pourexecuteAsyncQuery()
.Note
Les instructions de transfert de fichiers, telles que PUT et GET, sont valides pour
executeAsyncQuery()
mais se comportent de manière synchrone.- Arguments:
Aucun.
- Renvoie:
Un ResultSet « vide ». L’utilisateur doit interroger l’ensemble de résultats en appelant
resultSet.unwrap(SnowflakeResultSet.class).getStatus()
jusqu’à ce que les résultats de la requête deviennent disponibles.- Lève:
Cette méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’objet PreparedStatement.
- Exemples:
... PreparedStatement prepStatement = connection.prepareStatement("insert into testTable values (?)"); prepStatement.setInt(1, 33); ResultSet rs = prepStatement.executeAsyncQuery(); ...
Voir Exemples de requêtes asynchrones pour un exemple plus complet utilisant la méthode
SnowflakeStatement.executeAsyncQuery()
très similaire.
- getQueryID()
- But:
Cette méthode renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce
SnowflakePreparedStatement
. Si aucune requête n’a encore été exécutée avec cette instruction préparée, la méthode renvoie la valeur null.- Arguments:
Aucun.
- Renvoie:
La méthode renvoie l’ID en tant que chaîne contenant un UUID.
- Lève:
La méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler le
SnowflakePreparedStatement
.Pour les requêtes asynchrones, l’ID requête n’est pas disponible tant que l’exécution de l’instruction n’est pas terminée. Si vous appelez
SnowflakePreparedStatement.getQueryID()
après avoir appeléexecuteAsyncQuery()
mais avant la fin de l’exécution de l’instruction, la valeur de retour peut être NULL. Au lieu de cela, appelezresultSet.unwrap(SnowflakeResultSet.class).getQueryID()
sur l’objetResultSet
renvoyé parexecuteAsyncQuery()
.- Exemples:
Cet exemple partiel montre comment appeler la méthode :
// Retrieve the query ID from the PreparedStatement. String queryID; queryID = preparedStatement.unwrap(SnowflakePreparedStatement.class).getQueryID();
Enum : QueryStatus
¶
Le type enum est un type spécifique à Snowflake qui :
Définit les constantes qui représentent le statut d’une requête asynchrone.
Définit les méthodes qui renvoient des détails sur les erreurs qui se sont produites lors de l’exécution des instructions SQL.
Ce type enum se trouve dans le paquet net.snowflake.client.core
.
Constantes Enum¶
Chaque constante enum représente un statut possible différent pour la requête asynchrone.
Constante Enum |
Description |
---|---|
RUNNING |
La requête est toujours en cours d’exécution. |
ABORTING |
La requête est en cours d’annulation côté serveur. |
SUCCESS |
La requête s’est terminée avec succès. |
FAILED_WITH_ERROR |
La requête s’est terminée avec une erreur. |
QUEUED |
La requête est mise en file d’attente pour exécution (c’est-à-dire qu’elle n’est pas encore exécutée), généralement parce qu’elle attend des ressources. |
DISCONNECTED |
La connexion de la session est interrompue. L’état de la requête basculera bientôt sur « FAILED_WITH_ERROR ». |
RESUMING_WAREHOUSE |
L’entrepôt démarre et la requête n’est pas encore en cours d’exécution. |
BLOCKED |
L’instruction attend un verrou détenu par une autre instruction. |
NO_DATA |
Les données sur l’instruction ne sont pas encore disponibles, généralement parce que l’instruction n’est pas encore exécutée. |
Méthodes¶
Le type enum définit les méthodes suivantes, que vous pouvez utiliser pour obtenir des détails sur une erreur lorsque le statut de la requête est FAILED_WITH_ERROR
.
Nom de la méthode |
Description |
---|---|
|
Renvoie le code d’erreur du serveur si une erreur s’est produite lors de l’exécution de la requête. |
|
Renvoie le message d’erreur du serveur si une erreur s’est produite lors de l’exécution de la requête. |
- getErrorCode()¶
- But:
Si une erreur s’est produite lors de l’exécution de la requête, cette méthode renvoie le code d’erreur du serveur.
- Arguments:
Aucun.
- Renvoie:
La méthode renvoie le code d’erreur sous la forme d’un
int
. Si aucune erreur ne s’est produite, la méthode renvoie la valeur0
.- Exemples:
QueryStatus queryStatus = resultSet.unwrap(SnowflakeResultSet.class).getStatus(); if (queryStatus == queryStatus.FAILED_WITH_ERROR) { // Print the error code to stdout System.out.format("Error code: %d%n", queryStatus.getErrorCode()); }
Voir Exemples de requêtes asynchrones pour un exemple plus complet qui inclut un appel à cette méthode.
- getErrorMessage()¶
- But:
Si une erreur s’est produite lors de l’exécution de la requête, cette méthode renvoie le message d’erreur du serveur.
- Arguments:
Aucun.
- Renvoie:
La méthode renvoie le message d’erreur sous la forme d’une
String
. Si aucune erreur ne s’est produite, la méthode renvoie la valeurNo error reported
.- Exemples:
QueryStatus queryStatus = resultSet.unwrap(SnowflakeResultSet.class).getStatus(); if (queryStatus == queryStatus.FAILED_WITH_ERROR) { // Print the error message to stdout System.out.format("Error message: %s%n", queryStatus.getErrorMessage()); }
Voir Exemples de requêtes asynchrones pour un exemple plus complet qui inclut un appel à cette méthode.
Objet : ResultSet
¶
L’interface ResultSet documente les méthodes qui récupèrent les résultats des requêtes, par exemple pour lire les lignes et les colonnes renvoyées par une instruction SELECT.
Un ResultSet Snowflake est un objet en lecture seule ; il n’est pas modifiable.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
Méthodes non prises en charge |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake¶
close()
Ferme l’objet. Après la fermeture d’un objet, l’appel de n’importe quelle méthode de cet objet fermé lève une
SQLException
. L’appel declose
sur un objet déjà fermé est sans danger et ne lève pas d’exception.getDate()
,getTime()
,getTimestamp()
Dans la version 3.12.17 et les versions ultérieures du pilote JDBC, ces méthodes utilisent le fuseau horaire de la session (spécifié par le paramètre TIMEZONE). Les versions plus anciennes utilisent le fuseau horaire du JVM.
Pour modifier ces méthodes afin d’utiliser le fuseau horaire du JVM, réglez le paramètre JDBC_USE_SESSION_TIMEZONE sur
FALSE
.getMetaData()
Si l’objet ResultSet est destiné à une requête asynchrone, cette méthode se bloquera jusqu’à ce que l’exécution de la requête soit terminée. Vous pouvez utiliser
resultSet.unwrap(SnowflakeResultSet.class).getStatus()
pour obtenir le statut de la requête avant d’appeler cette méthode.next()
Cela fait que la ligne suivante du résultat définit la ligne « actuelle ». Les appels aux méthodes
get*()
, telles quegetInt()
, extraient des valeurs de la ligne en cours.Si l’objet
ResultSet
a été fermé par un appel à la méthodeclose
, les appels suivants ànext
renverront « false », plutôt qu’une exception.Si l’objet ResultSet est destiné à une requête asynchrone, cette méthode se bloquera jusqu’à ce que les résultats soient disponibles. Vous pouvez utiliser
resultSet.unwrap(SnowflakeResultSet.class).getStatus()
pour obtenir le statut de la requête avant d’appeler cette méthode.
Interface : SnowflakeResultSet
¶
L’interface SnowflakeResultSet contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type ResultSet, par exemple en appelant la méthode Statement.getResultSet(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface JDBC ResultSet et l’interface SnowflakeResultSet. Pour accéder aux méthodes SnowflakeResultSet de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Nom de la méthode |
Description |
---|---|
|
Renvoie l’ID de requête Snowflake de l’instruction qui a généré ce jeu de résultats. |
|
Pour un ResultSet renvoyé par une requête asynchrone, retourne le statut de la requête. |
- getQueryID()
- But:
Cette méthode renvoie l’ID de requête Snowflake de l’instruction qui a généré ce jeu de résultats.
- Arguments:
Aucun.
- Renvoie:
La méthode renvoie l’ID en tant que chaîne contenant un UUID.
- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler le
ResultSet
.- Exemples:
String queryID2; queryID2 = resultSet.unwrap(SnowflakeResultSet.class).getQueryID();
- getStatus()¶
- But:
Pour un ResultSet renvoyé par une requête asynchrone, tel que
SnowflakeStatement.executeAsyncQuery()
, cette méthode renvoie le statut de la requête. Le statut indique si la requête s’est terminée avec succès, a échoué ou n’est pas encore terminée.- Arguments:
Aucun.
- Renvoie:
Une constante enum QueryStatus.
- Lève:
Cette méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’objet ResultSet.
- Exemples:
QueryStatus queryStatus = resultSet.unwrap(SnowflakeResultSet.class).getStatus();
Voir Exemples de requêtes asynchrones pour un exemple plus complet qui inclut un appel à cette méthode.
Objet : ResultSetMetaData
¶
Cela fournit des informations sur un ResultSet, par exemple, le nombre de colonnes d’un ResultSet.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Méthodes non prises en charge |
|
Aucun. |
Comportement spécifique à Snowflake¶
La classe
ResultSetMetaData
n’a pas de méthodeclose()
. Un objetResultSetMetaData
ouvert est implicitement fermé lorsque l’utilisateur ferme leResultSet
à partir duquel l’objetResultSetMetaData
a été créé.getCatalogName()
,getSchemaName()
,getTableName()
Si l’objet ResultSet est destiné à une requête asynchrone, ces méthodes renvoient des chaînes vides.
Pour les colonnes GEOGRAPHY ,
getColumnTypeName
renvoieGEOGRAPHY
.Notez que les méthodes
getColumnType
etgetColumnClassName
n’indiquent pas que le type de colonne estGEOGRAPHY
.
Interface : SnowflakeResultSetMetaData
¶
L’interface SnowflakeResultSetMetaData contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type ResultSetMetaData, par exemple en appelant la méthode ResultSet.getMetaData(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface JDBC ResultSetMetaData et l’interface SnowflakeResultSetMetaData. Pour accéder aux méthodes SnowflakeResultSetMetaData de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
|
|
|
|
- getColumnIndex(String columnName):
- But:
Renvoie l’index de la colonne qui correspond à columnName. Par exemple, si une colonne nommée « BirthDate » est la troisième colonne de la table, alors getColumnIndex(« BirthDate ») renvoie 2. (Les index sont basés sur 0 et non sur 1.)
- Arguments:
Le nom de la colonne pour laquelle vous voulez trouver l’index.
- Renvoie:
Renvoie un entier qui contient l’index de la colonne qui correspond à columnName. Si columName ne correspond à aucune colonne du jeu de résultats, cela renvoie -1.
- Lève:
La méthode peut lever une
SQLException
.
- getColumnNames():
- But:
Cette fonction renvoie la liste de tous les noms de colonnes du jeu de résultats.
Cela diffère de la fonction getColumnName(colonne ent) dans ResultSetMetaData, qui renvoie un nom de colonne unique basé sur un index.
- Arguments:
Aucun.
- Renvoie:
Le type de données de la valeur renvoyée est « Liste<Chaîne> ». La liste contient les noms des colonnes. Les noms sont dans le même ordre que les index de colonne.
- Lève:
La méthode peut lever une
SQLException
.
- getInternalColumnType(int column):
- But:
Cette méthode renvoie le type de données de la colonne spécifiée.
- Arguments:
column : indique l’index (basé sur 1) de la colonne pour laquelle vous voulez le type de données.
- Renvoie:
Cette méthode renvoie le type de données de la colonne spécifiée. Le type de données est un entier.
- Lève:
La méthode peut lever une
SQLException
.
- getQueryID()
- But:
Renvoie l’ID de requête Snowflake de la requête à laquelle ces métadonnées s’appliquent.
- Arguments:
Aucun.
- Renvoie:
Cette méthode renvoie l’ID de la requête pour laquelle ces métadonnées ont été générées. L’ID de la requête est une chaîne contenant un UUID. Des informations sur les UUIDs sont incluses dans la description de la fonction SQL UUID_STRING.
- Lève:
La méthode peut lever une
SQLException
.
Objet : SnowflakeTimestampWithTimezone
¶
Un objet SnowflakeTimestampWithTimezone
fournit des informations sur le fuseau horaire associé à l’horodatage de l’objet Timestamp
Java. Vous pouvez utiliser cet objet pour extraire directement le fuseau horaire au lieu d’analyser les informations à partir de la chaîne Timestamp
Java. Pour accéder à cette fonctionnalité, vous devez importer les bibliothèques Java suivantes :
java.sql.Timestamp;
java.time.ZonedDateTime;
java.util.TimeZone;
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Constructeurs |
|
SnowflakeTimestampWithTimezone(
long seconds,
int nanoseconds,
TimeZone tz)
|
|
SnowflakeTimestampWithTimezone(
Timestamp ts,
TimeZone tz)
|
|
SnowflakeTimestampWithTimezone(
Timestamp ts)
|
|
Méthodes prises en charge |
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
Comportement spécifique à Snowflake¶
getTimezone()
Renvoie le fuseau horaire à partir de l’horodatage.
import java.sql.Timestamp; import java.time.ZonedDateTime; import java.util.TimeZone; public void testGetTimezone() { String timezone = "Australia/Sydney"; // Create a timestamp from a point in time Long datetime = System.currentTimeMillis(); Timestamp currentTimestamp = new Timestamp(datetime); SnowflakeTimestampWithTimezone ts = new SnowflakeTimestampWithTimezone(currentTimestamp, TimeZone.getTimeZone(timezone)); // Verify timezone was set assertEquals(ts.getTimezone().getID(), timezone); }
toZonedDateTime()
Convertit un horodatage
SnowflakeTimestampWithTimezone
en une date-heure zonée (objetZonedDateTime
Java).import java.sql.Timestamp; import java.time.ZonedDateTime; import java.util.TimeZone; public void testToZonedDateTime() { String timezone = "Australia/Sydney"; String zonedDateTime = "2022-03-17T10:10:08+11:00[Australia/Sydney]"; // Create a timestamp from a point in time Long datetime = 1647472208000L; Timestamp timestamp = new Timestamp(datetime); SnowflakeTimestampWithTimezone ts = new SnowflakeTimestampWithTimezone(timestamp, TimeZone.getTimeZone(timezone)); ZonedDateTime zd = ts.toZonedDateTime(); // Verify timestamp was converted to zoned datetime assertEquals(zd.toString(), zonedDateTime); }
Objet : Statement
¶
Un objet Statement
représente une instruction SQL. L’objet d’instruction permet aux utilisateurs d’effectuer des tâches telles que :
Exécuter une instruction SQL.
Définir un délai d’expiration pour l’exécution de l’instruction.
Récupérer un jeu de résultats pour une requête.
Méthodes¶
Nom de la méthode |
Remarques |
---|---|
Méthodes prises en charge |
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake (voir ci-dessous pour plus de détails). |
|
|
|
|
|
|
Méthodes non prises en charge |
|
|
|
|
|
|
|
|
Comportement spécifique à Snowflake¶
close()
Cette méthode ferme l’objet. Après la fermeture d’un objet, l’appel de n’importe quelle méthode de cet objet fermé lève une
SQLException
. L’appel declose
sur un objet déjà fermé est sans danger et ne lève pas d’exception.getBatchQueryID()
Cette méthode renvoie une liste d’IDs de requêtes Snowflake du dernier lot de requêtes exécuté de cette
Statement
. Si aucune requête n’a encore été exécutée avec l’instruction, la méthode renvoie la valeur null.Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’instruction. Par exemple :
connection.setAutoCommit(false); statement.addBatch("SELECT 1;"); statement.addBatch("SELECT 2;"); statement.executeBatch(); connection.commit(); connection.setAutoCommit(true); List<String> batchQueryIDs1; // Since getQueryID is not standard JDBC API, we must call unwrap() to // use these Snowflake methods. batchQueryIDs1 = statement.unwrap(SnowflakeStatement.class).getBatchQueryIDs(); int num_query_ids = batchQueryIDs1.size(); if (num_query_ids != 2) { System.out.println("ERROR: wrong number of query IDs in batch 1."); } // Check that each query ID is plausible. for (int i = 0; i < num_query_ids; i++) { String qid = batchQueryIDs1.get(i); if (!is_plausible_query_id(qid)) { msg = "SEVERE WARNING: suspicious query ID in batch"; System.out.println("msg"); System.out.println(qid); } }
getUpdateCount()
Cette méthode renvoie le nombre de lignes mises à jour par la dernière instruction SQL exécutée.
Si l’instruction était une instruction DML (INSERT, UPDATE, DELETE, etc.), alors
getUpdateCount()
renvoie le nombre de lignes ajoutées, supprimées ou modifiées. Notez que cette valeur peut être0
si aucune ligne n’a été modifiée.Si l’instruction était une instruction SELECT, alors
getUpdateCount()
renvoie-1
.Si l’instruction était une instruction DDL, alors
getUpdateCount()
renvoie-1
.
Interface : SnowflakeStatement
¶
L’interface SnowflakeStatement contient des méthodes spécifiques à Snowflake. Lorsque vous utilisez le pilote Snowflake JDBC pour créer un objet de type Instruction, par exemple en appelant la méthode Connection.createStatement(), vous obtenez un objet d’un type différent (caché) spécifique à Snowflake, qui implémente l’interface d’instruction JDBC et l’interface SnowflakeStatement. Pour accéder aux méthodes SnowflakeStatement de cet objet, désencapsulez l’objet.
Méthodes supplémentaires¶
Nom de la méthode |
Description |
---|---|
|
Exécute une requête asynchrone. |
|
Renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce |
|
Définit les paramètres spécifiques à Snowflake. |
- executeAsyncQuery(String)
- But:
Cette méthode effectue une requête asynchrone, ce qui implique de soumettre une instruction SQL pour exécution, puis de renvoyer le contrôle à l’appelant sans attendre la fin de la requête.
- Arguments:
Une chaîne contenant la commande SQL à exécuter. Toute instruction SQL valable pour
executeQuery()
l’est également pourexecuteAsyncQuery()
.Note
Les instructions de transfert de fichiers, telles que PUT et GET, sont valides pour
executeAsyncQuery()
mais se comportent de manière synchrone.- Renvoie:
Un ResultSet « vide ». L’utilisateur doit interroger l’ensemble de résultats en appelant
resultSet.unwrap(SnowflakeResultSet.class).getStatus()
jusqu’à ce que les résultats de la requête deviennent disponibles.- Lève:
La méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’objet d’instruction.
- Exemples:
Voir Exemples de requêtes asynchrones pour un exemple qui inclut un appel à cette méthode.
- getQueryID()
- But:
Cette méthode renvoie l’ID de requête Snowflake de la dernière requête exécutée de ce
Statement
.- Arguments:
Aucun.
- Renvoie:
L’ID de la dernière requête exécutée de cette instruction. L’ID de la requête est une chaîne contenant un UUID. Si aucune requête n’a encore été exécutée avec l’instruction, la méthode renvoie la valeur null.
- Lève:
La méthode peut lever une
SQLException
.- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’instruction.
Pour les requêtes asynchrones, l’ID requête n’est pas disponible tant que l’exécution de l’instruction n’est pas terminée. Si vous appelez
SnowflakeStatement.getQueryID()
après avoir appeléexecuteAsyncQuery()
mais avant la fin de l’exécution de l’instruction, la valeur de retour peut être NULL. Au lieu de cela, appelezresultSet.unwrap(SnowflakeResultSet.class).getQueryID()
sur l’objetResultSet
renvoyé parexecuteAsyncQuery()
.- Exemples:
String queryID1; queryID1 = statement.unwrap(SnowflakeStatement.class).getQueryID();
- setParameter(String parameter_name, <type> <value>)¶
- But:
La classe
SnowflakeStatement
fournit la méthodesetParameter
en tant qu’extension Snowflake. Cela permet à l’appelant de définir des paramètres JDBC spécifiques à Snowflake.La méthode est surchargée. Des paramètres JDBC différents nécessitent des types de données différents. Il existe une méthode pour chaque type de données valide pouvant être transmis en tant que deuxième argument à la fonction.
- Arguments:
- parameter_name :
Cette chaîne doit contenir le nom d’un paramètre JDBC Snowflake prédéfini. Les paramètres JDBC prédéfinis (ainsi que leurs valeurs ou plages valides) sont répertoriés ci-dessous :
Paramètre JDBC
Remarques
MULTI_STATEMENT_COUNT
Entier spécifiant le nombre d’instructions (
0
= nombre illimité d’instructions ;1
ou supérieur indique le nombre exact d’instructions à exécuter).- value :
Il s’agit de la valeur à affecter au paramètre JDBC spécifié. Assurez-vous que le type de données est compatible avec le paramètre JDBC que vous avez spécifié.
- Renvoie:
Rien.
- Lève:
Cette fonction peut lever une SQLException.
- Remarques:
Cette méthode est une extension Snowflake à la norme JDBC. Pour utiliser cette méthode, vous devez désencapsuler l’instruction.
- Exemples:
Statement statement1; ... // Tell Statement to expect to execute 2 statements: statement1.unwrap(SnowflakeStatement.class).setParameter( "MULTI_STATEMENT_COUNT", 2);
Interface : SQLException
¶
Les objets SQLException sont levés par les méthodes de pilote JDBC lorsqu’une erreur se produit et contiennent des informations sur cette erreur.
Nom de la méthode |
Description |
---|---|
|
Renvoie un code d’erreur spécifique à Snowflake. |
|
Cela renvoie une chaîne qui décrit l’erreur. |
|
Renvoie le SQLState. |
- getErrorCode()
- But:
Cette méthode renvoie un code d’erreur Snowflake personnalisé.
- Arguments:
Aucun.
- Renvoie:
Code d’erreur spécifique à Snowflake.
- Remarques:
Voir aussi la méthode
getSQLState()
.
- getMessage()¶
- But:
Cette méthode renvoie une chaîne qui décrit l’erreur.
- Arguments:
Aucun.
- Renvoie:
Message d’erreur spécifique à Snowflake.
- getSQLState()¶
- But:
Cette méthode renvoie une chaîne qui contient une valeur alphanumérique de cinq caractères basée sur l’erreur.
- Arguments:
Aucun.
- Renvoie:
SQLState spécifique à Snowflake. Un SQLState est une chaîne alphanumérique de cinq caractères qui indique l’erreur spécifique qui s’est produite.