Paramètres d'initialisation

Autonomous Database configure automatiquement les paramètres d'initialisation de base de données lorsque vous provisionnez une base de données. Vous n'avez pas besoin de définir de paramètres d'initialisation pour commencer à utiliser votre service. Toutefois, vous pouvez modifier certains paramètres si nécessaire.

Paramètres d'initialisation modifiables

Le tableau suivant présente les paramètres d'initialisation qui ne sont modifiables qu'avec ALTER SESSION.

Modifiable uniquement avec ALTER SESSION Plus d'informations
CONSTRAINTS  
CONTAINER  
CURRENT_SCHEMA  
CURSOR_INVALIDATION CURSOR_INVALIDATION
DEFAULT_COLLATION  
DEFAULT_CREDENTIAL  
EDITION  
ISOLATION_LEVEL  
JSON_BEHAVIOR

Ce paramètre s'applique uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à JSON_BEHAVIOR.

JSON_EXPRESSION_CHECK JSON_EXPRESSION_CHECK
OPTIMIZER_SESSION_TYPE

OPTIMIZER_SESSION_TYPE

OPTIMIZER_USE_INVISIBLE_INDEXES

OPTIMIZER_USE_INVISIBLE_INDEXES

READ_ONLY  
SQL_TRACE

Pour plus d'informations, reportez-vous à Exécution de la fonction de trace SQL sur Autonomous Database

SQL_TRANSLATION_PROFILE  
SQL_TRANSPILER

Ce paramètre s'applique uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à SQL_TRANSPILER.

STATISTICS_LEVEL STATISTICS_LEVEL
TIME_ZONE

Pour plus d'informations sur TIME_ZONE, reportez-vous à Référence de langage SQL Oracle Database.

XML_PARAMS

Ce paramètre s'applique uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à XML_PARAMS.

Le tableau suivant présente les paramètres d'initialisation qui ne sont modifiables qu'avec ALTER SYSTEM.

Modifiable uniquement avec ALTER SYSTEM Plus d'informations
BLANK_TRIMMING BLANK_TRIMMING
FIXED_DATE FIXED_DATE
JOB_QUEUE_PROCESSES JOB_QUEUE_PROCESSES
LOCKDOWN_ERRORS

Pour plus d'informations, reportez-vous à LOCKDOWN_ERRORS.

MAX_IDLE_BLOCKER_TIME MAX_IDLE_BLOCKER_TIME

Avec une valeur supérieure à 5, le paramètre agit comme s'il était défini sur 5.

MAX_IDLE_TIME MAX_IDLE_TIME

Par défaut, MAX_IDLE_TIME est défini sur 1440. Lorsque la valeur MAX_IDLE_TIME est définie sur 0 ou sur une valeur supérieure à 1440, le paramètre agit comme s'il était défini sur 1440.

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

Le tableau suivant présente les paramètres d'initialisation modifiables avec ALTER SESSION ou ALTER SYSTEM.

Modifiable avec ALTER SESSION ou ALTER SYSTEME Plus d'informations
APPROX_FOR_AGGREGATION APPROX_FOR_AGGREGATION
APPROX_FOR_COUNT_DISTINCT APPROX_FOR_COUNT_DISTINCT
APPROX_FOR_PERCENTILE APPROX_FOR_PERCENTILE
CLIENT_PREFETCH_ROWS

Reportez-vous à CLIENT_PREFETCH_ROWS

CLOUD_TABLE_COMMIT_THRESHOLD

Pour plus d'informations, reportez-vous à CLOUD_TABLE_COMMIT_THRESHOLD.

CONTAINER_DATA CONTAINER_DATA
CURSOR_SHARING CURSOR_SHARING
DDL_LOCK_TIMEOUT DDL_LOCK_TIMEOUT
GROUP_BY_POSITION  
GROUP_BY_POSITION_ENABLED

Ce paramètre s'applique uniquement à Oracle Database 23ai. Pour plus d'informations, reportez-vous à GROUP_BY_POSITION_ENABLED.

HEAT_MAP HEAT_MAP
IGNORE_SESSION_SET_PARAM_ERRORS IGNORE_SESSION_SET_PARAM_ERRORS
LDAP_DIRECTORY_ACCESS LDAP_DIRECTORY_ACCESS
LOAD_WITHOUT_COMPILE  
MAX_STRING_SIZE

Pour plus de détails, reportez-vous à Types de données.

NLS_CALENDAR NLS_CALENDAR
NLS_COMP NLS_COMP
NLS_CURRENCY NLS_CURRENCY
NLS_DATE_FORMAT NLS_DATE_FORMAT
NLS_DATE_LANGUAGE NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY NLS_ISO_CURRENCY
NLS_LANGUAGE NLS_LANGUAGE
NLS_LENGTH_SEMANTICS NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS NLS_NUMERIC_CHARACTERS
NLS_SORT NLS_SORT
NLS_TERRITORY NLS_TERRITORY
NLS_TIME_FORMAT  
NLS_TIME_TZ_FORMAT  
NLS_TIMESTAMP_FORMAT NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT
OPTIMIZER_CAPTURE_SQL_QUARANTINE OPTIMIZER_CAPTURE_SQL_QUARANTINE
OPTIMIZER_IGNORE_HINTS

Pour plus d'informations sur OPTIMIZER_IGNORE_HINTS, reportez-vous à Gestion des statistiques de l'optimiseur sur Autonomous Database.

OPTIMIZER_IGNORE_PARALLEL_HINTS

Pour plus d'informations sur OPTIMIZER_IGNORE_PARALLEL_HINTS, reportez-vous à Gestion des statistiques de l'optimiseur sur Autonomous Database.

OPTIMIZER_MODE OPTIMIZER_MODE
OPTIMIZER_REAL_TIME_STATISTICS OPTIMIZER_REAL_TIME_STATISTICS
OPTIMIZER_USE_SQL_QUARANTINE OPTIMIZER_USE_SQL_QUARANTINE
PLSCOPE_SETTINGS PLSCOPE_SETTINGS
PLSQL_CCFLAGS PLSQL_CCFLAGS
PLSQL_DEBUG PLSQL_DEBUG
PLSQL_IMPLICIT_CONVERSION_BOOL

Ce paramètre s'applique uniquement à Oracle Database 23ai. Reportez-vous à PLSQL_IMPLICIT_CONVERSION_BOOL

PLSQL_OPTIMIZE_LEVEL PLSQL_OPTIMIZE_LEVEL
PLSQL_WARNINGS PLSQL_WARNINGS
QUERY_REWRITE_INTEGRITY QUERY_REWRITE_INTEGRITY
RECYCLEBIN RECYCLAGE
REMOTE_DEPENDENCIES_MODE REMOTE_DEPENDENCIES_MODE
RESULT_CACHE_INTEGRITY

Reportez-vous à RESULT_CACHE_INTEGRITY

RESULT_CACHE_MODE

Reportez-vous à RESULT_CACHE_MODE

SKIP_UNUSABLE_INEDEXES

SKIP_UNUSABLE_INDEXES

SQL_HISTORY_ENABLED

Ce paramètre est disponible à partir d'Oracle Database 23ai. Pour plus d'informations, reportez-vous à SQL_HISTORY_ENABLED.

SYSDATE_AT_DBTIMEZONE

Reportez-vous à SYSDATE_AT_DBTIMEZONE Sélection d'un fuseau horaire pour SYSDATE sur Autonomous Database

XML_CLIENT_SIDE_DECODING

Reportez-vous à XML_CLIENT_SIDE_DECODING

Pour plus d'informations sur les paramètres d'initialisation, reportez-vous à Référence Oracle Database.

CLIENT_PREFETCH_ROWS

Définissez le paramètre CLIENT_PREFETCH_ROWS pour permettre aux clients de réduire le nombre d'aller-retours requis lors de l'extraction des lignes d'un ensemble de résultats de requête.

CLIENT_PREFETCH_ROWS indique le nombre de lignes à préextraire par le pilote client Oracle, sans apporter de modifications à l'application client. Le pilote client met en mémoire tampon les lignes pré-extraitées après chaque exécution d'interrogation réussie et pour chaque demande d'extraction ultérieure envoyée à la base de données.

Ce paramètre s'applique uniquement aux clients qui utilisent Oracle Call Interface (OCI) pour se connecter à la base de données.

Ce paramètre s'applique uniquement à Oracle Instant Client/Oracle Database Client 19.17 (ou version ultérieure) et 21.8 (ou version ultérieure), pour toutes les plates-formes.

Propriété Description
Type de paramètre Entier
Syntaxe CLIENT_PREFETCH_ROWS = integer
Valeur par défaut 0 (seuls les paramètres côté client s'appliquent)
Modifiable ALTER SYSTEM, ALTER SESSION
Plage de valeurs 0 à UB4MAXVAL (4294967295)
De base Non

Le paramètre CLIENT_PREFETCH_ROWS peut être défini avec ALTER SESSION ou ALTER SYSTEM. Si la valeur du paramètre change à l'aide de ALTER SESSION, la nouvelle valeur prend effet pour cette session spécifique lors des extractions suivantes de l'ensemble de résultats. Si la valeur du paramètre change à l'aide de ALTER SYSTEM, la nouvelle valeur prend effet pour les instructions exécutées sur les connexions créées après la commande ALTER SYSTEM.

Par exemple, si CLIENT_PREFETCH_ROWS est défini sur 100 et qu'une application client demande d'extraire 10 lignes, un total de 110 lignes est renvoyé au pilote client. Les 10 premières lignes sur les 110 sont attribuées à l'application, et le pilote client met en mémoire tampon les 100 lignes restantes en interne. Les 10 prochaines extractions de ligne à partir de l'application client, chacune avec 10 lignes par itération d'extraction, peuvent être exécutées à partir des 100 lignes mises en mémoire tampon en interne par le pilote client. Ce processus réduit le nombre d'allers-retours réseau requis vers et depuis la base de données. Dans cet exemple, lors de la 11e extraction, un nouvel aller-retour réseau est engagé et la base de données renvoie le lot suivant de 110 lignes, tant que l'ensemble de résultats n'est pas épuisé et que le cycle se répète.

Remarques concernant la définition de CLIENT_PREFETCH_ROWS :

  • Lorsque la valeur CLIENT_PREFETCH_ROWS est définie sur une valeur différente de zéro, sa valeur est prioritaire sur la valeur OCI_ATTR_PREFETCH_ROWS par défaut pour le nombre de lignes de pré-extraction.

  • Si la valeur OCI_ATTR_PREFETCH_ROWS est définie sur une valeur autre que celle par défaut, la valeur CLIENT_PREFETCH_ROWS est ignorée pour le nombre de lignes de pré-extraction.

  • En utilisant CLIENT_PREFETCH_ROWS avec OCIAttrSet() :

    OCI_ATTR_PREFETCH_ROWS définit le nombre de lignes de niveau supérieur à préextraire. La valeur par défaut est 1 ligne. Toutefois, si CLIENT_PREFETCH_ROWS est défini, le nombre de lignes de niveau supérieur à préextraire est déterminé par la priorité suivante :

    1. Si vous définissez l'attribut OCI_ATTR_PREFETCH_ROWS à l'aide de la fonction OCIAttrSet() ou de oraaccess.xml en tant que valeur '1', la valeur du paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS est prioritaire et détermine le nombre de lignes de niveau supérieur à préextraire.

    2. Si vous définissez l'attribut OCI_ATTR_PREFETCH_ROWS à l'aide de la fonction OCIAttrSet() ou de oraaccess.xml en tant que valeur 'x' autre que 1, le nombre de lignes de niveau supérieur 'x' est pré-extrait et le paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS est ignoré.

    3. Si vous ne définissez pas de valeur OCI_ATTR_PREFETCH_ROWS à l'aide de OCIAttrSet() ou oraaccess.xml, la valeur du paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS est prioritaire et détermine le nombre de lignes de niveau supérieur à préextraire.

  • En utilisant CLIENT_PREFETCH_ROWS avec OCIAttrGet() :

    La fonction OCIAttrGet() renvoie la valeur de ligne de pré-extraction effective définie à partir de OCI_ATTR_PREFETCH_ROWS, oraaccess.xml et du paramètre d'initialisation de base de données CLIENT_PREFETCH_ROWS. Si la valeur OCI_ATTR_PREFETCH_MEMORY est définie, la valeur renvoyée par OCIAttrGet() peut ne pas être la valeur finale des lignes de pré-extraction et peut être limitée au nombre maximal de lignes autorisé par la valeur de mémoire indiquée par l'attribut OCI_ATTR_PREFETCH_MEMORY.

Voir aussi :

CLOUD_TABLE_COMMIT_THRESHOLD

Le paramètre CLOUD_TABLE_COMMIT_THRESHOLD contrôle le nombre de modifications mises en mémoire tampon pour les tables cloud avant que les modifications ne soient écrites dans le stockage d'objets.

Lorsque le paramètre CLOUD_TABLE_COMMIT_THRESHOLD est défini sur une valeur différente de zéro, le système traite la valeur comme un seuil de nombre de modifications et les modifications de la table cloud sont mises en mémoire tampon jusqu'à ce que le nombre de modifications atteigne le seuil spécifié. Lorsque le seuil est atteint, les modifications mises en mémoire tampon sont exportées vers Object Storage. La valeur par défaut de ce paramètre est 0 (la mise en mémoire tampon est désactivée).

Pour plus d'informations, reportez-vous à A propos des tables cloud.

Remarque

Ce paramètre s'applique à toutes les tables cloud et peut être défini par tout utilisateur disposant du privilège ALTER SESSION. Par conséquent, les tables cloud ne conviennent pas aux données critiques pour la sécurité lorsque les modifications validées doivent être durables et doivent être immédiatement visibles par les lecteurs simultanés. Pour cette raison, les tables cloud peuvent ne pas être appropriées pour des cas d'utilisation tels que les tables de journal d'audit.
Propriété Description
Type de paramètre Entier
Syntaxe CLOUD_TABLE_COMMIT_THRESHOLD = entier
Valeur par défaut

La valeur par défaut est 0 (la mise en mémoire tampon est désactivée).

Modifiable ALTER SESSION, ALTER SYSTEM
Plage de valeurs 0 to 2147483647

JOB_QUEUE_PROCESSES

Définissez le paramètre JOB_QUEUE_PROCESSES afin d'indiquer le nombre maximal de processus actifs pouvant être créés pour exécuter des travaux Oracle Scheduler (DBMS_SCHEDULER).

La définition de la valeur sur 0 désactive les travaux du planificateur non fournis par Oracle.

Propriété Description
Type de paramètre Entier
Syntaxe JOB_QUEUE_PROCESSES = integer
Valeur par défaut

La valeur par défaut dépend du nombre d'ECPU (nombre d'OCPU si votre base de données utilise des OCPU) et du paramètre de redimensionnement automatique d'ECPU (redimensionnement automatique d'OCPU si votre base de données utilise des OCPU). Pour plus de détails, reportez-vous au tableau suivant.

Modifiable ALTER SYSTEM
Plage de valeurs

Valeur minimale : 0

La valeur maximale dépend du nombre d'ECPU (nombre d'OCPU si votre base de données utilise des OCPU) et du paramètre de redimensionnement automatique d'ECPU (redimensionnement automatique d'OCPU si votre base de données utilise des OCPU), comme indiqué dans le tableau suivant.

Les valeurs par défaut et maximales pour JOB_QUEUE_PROCESSES diffèrent en fonction du modèle de calcul que vous utilisez. Pour plus d'informations, reportez-vous à Modèles de calcul dans Autonomous Database.

Modèle de calcul Valeur par défaut et maximum avec redimensionnement automatique désactivé Valeur par défaut et valeur maximum avec redimensionnement automatique activé
ECPU 7,5 x nombre d'ECPU 22,5 x nombre d'ECPU
OCPU 30 x nombre d'OCPU 90 x nombre d'OCPU

Le coordinateur de travaux et les processus actifs de travail Oracle Scheduler sont contrôlés par le paramètre JOB_QUEUE_PROCESSES. Le planificateur règle automatiquement le nombre réel de processus actifs créés pour les travaux Oracle Scheduler en fonction de plusieurs facteurs, notamment les ressources disponibles, les paramètres Resource Manager et les travaux en cours d'exécution.

La valeur par défaut de JOB_QUEUE_PROCESSES offre un compromis entre la qualité de service des applications et une utilisation raisonnable des ressources système. Cependant, il est possible que la valeur par défaut ne corresponde pas à tous les environnements.

La définition de la valeur JOB_QUEUE_PROCESSES sur 0 désactive les travaux du planificateur non fournis par Oracle. Lorsque JOB_QUEUE_PROCESSES est défini sur 0, cela ne désactive aucun travail interne pour les utilisateurs fournis par Oracle (les travaux liés aux services exécutés par les utilisateurs fournis par Oracle continuent d'être programmés).

Les utilisateurs fournis par Oracle sont des utilisateurs marqués comme ORACLE_MAINTAINED avec la valeur Y. Les utilisateurs non fournis par Oracle sont des utilisateurs marqués comme ORACLE_MAINTAINED avec la valeur N.

Pour plus d'informations, reportez-vous à ALL_USERS.

LOCKDOWN_ERRORS

Définissez le paramètre LOCKDOWN_ERRORS pour contrôler si les erreurs de profil de verrouillage Autonomous Database sont générées ou ignorées.

Autonomous Database utilise des profils de verrouillage pour restreindre certaines fonctionnalités et fonctionnalités de base de données. Par défaut, la base de données génère une erreur chaque fois que vous tentez d'exécuter une commande SQL restreinte par le profil de verrouillage Autonomous Database. Le paramètre LOCKDOWN_ERRORS vous permet de supprimer les erreurs de profil de verrouillage. En outre, lorsque LOCKDOWN_ERRORS est défini sur la valeur IGNORE, lorsqu'une erreur est ignorée, la base de données consigne les détails concernant l'instruction SQL, l'utilisateur et l'horodatage de la commande.

Remarque

Evaluez soigneusement vos scripts existants avant de définir la valeur de ce paramètre sur IGNORE. Lorsque vous définissez la valeur sur IGNORE, les scripts existants que vous utilisez ne généreront plus d'erreurs de verrouillage.

Vous pouvez utiliser la vue DBA_LOCKDOWN_ERRORS pour obtenir des informations sur les erreurs de profil de verrouillage. Pour plus d'informations, reportez-vous à Vue Erreurs de verrouillage.

Propriété Description
Type de paramètre Chaîne
Syntaxe LOCKDOWN_ERRORS = IGNORE | RAISE
Valeur par défaut

La valeur par défaut est RAISE.

Modifiable ALTER SYSTEM
Valeurs valides

RAISE : génère des erreurs de profil de verrouillage.

IGNORE : supprime les erreurs de profil de verrouillage.

SESSION_EXIT_ON_PACKAGE_STATE_ERROR

SESSION_EXIT_ON_PACKAGE_STATE_ERROR active ou désactive la gestion spéciale des packages PL/SQL avec conservation de statut exécutés dans une session.

Propriété Description
Type de paramètre Booléen
Valeur par défaut FALSE
Modifiable ALTER SYSTEM
Plage de valeurs TRUE | FALSE

SESSION_EXIT_ON_PACKAGE_STATE_ERROR indique la gestion d'un package PL/SQL avec conservation de statut exécuté dans une session. Lorsqu'un tel package est modifié, par exemple lors d'une maintenance planifiée pour les objets fournis par Oracle, les sessions qui ont une instanciation active du package reçoivent l'erreur suivante lorsqu'elles tentent d'exécuter le package :

ORA-4068 existing state of package has been discarded

Toutefois, le code d'application qui reçoit l'erreur ORA-4068 peut ne pas être équipé pour gérer cette erreur avec sa logique de nouvelle tentative.

La définition de SESSION_EXIT_ON_PACKAGE_STATE_ERROR sur TRUE offre un traitement différent pour ce cas. Lorsque SESSION_EXIT_ON_PACKAGE_STATE_ERROR est défini sur TRUE, au lieu de générer simplement l'erreur ORA-4068 lorsque l'état du package est supprimé, la session se ferme immédiatement. Cela peut être avantageux car de nombreuses applications sont en mesure de gérer la terminaison de session en rétablissant automatiquement et de manière transparente la connexion.

RESULT_CACHE_INTEGRITY

Définissez le paramètre RESULT_CACHE_INTEGRITY pour indiquer si le cache des résultats prend en compte les requêtes utilisant éventuellement des constructions non déterministes comme candidats à la mise en cache des résultats.

Propriété Description
Type de paramètre Chaîne
Syntaxe RESULT_CACHE_INTEGRITY = { ENFORCED | TRUSTED }
Valeur par défaut

Pour Autonomous Database, la valeur par défaut est : ENFORCED

Modifiable ALTER SYSTEM

Valeurs

  • ENFORCED : quel que soit le paramètre de RESULT_CACHE_MODE ou les conseils indiqués, seules les structures déterministes peuvent être mises en cache des résultats. Par exemple, les requêtes utilisant des fonctions PL/SQL qui ne sont pas déclarées comme déterministes ne sont jamais mises en cache (sauf si les fonctions sont déclarées comme déterministes, les résultats de requête avec ces fonctions ne seront pas mis en cache).

  • TRUSTED : la base de données respecte le paramètre RESULT_CACHE_MODE et les conseils indiqués, et considère les requêtes utilisant éventuellement des constructions non déterministes comme candidats à la mise en cache des résultats. Par exemple, les requêtes utilisant des fonctions PL/SQL qui ne sont pas déclarées comme déterministes peuvent être mises en cache. Notez toutefois que les résultats connus pour être non déterministes ne sont pas mis en cache (par exemple, SYSDATE ou les constructions impliquant SYSDATE).

RESULT_CACHE_MODE

Définissez le paramètre RESULT_CACHE_MODE pour indiquer les requêtes pouvant stocker les ensembles de résultats dans le cache de résultats. Seuls les plans d'exécution de requête avec l'opérateur de cache de résultats tenteront de lire ou d'écrire dans le cache de résultats.

Propriété Description
Type de paramètre Chaîne
Syntaxe RESULT_CACHE_MODE = { MANUAL | MANUAL_TEMP | FORCE | FORCE_TEMP }
Valeur par défaut

Pour Autonomous Database avec le type de charge globale défini sur Data Warehouse : FORCE

Pour les types de charge globale Traitement des transactions, JSON ou APEX : MANUAL

Modifiable ALTER SESSION, ALTER SYSTEM

Pour plus d'informations, reportez-vous à RESULT_CACHE_MODE.

Utiliser les conseils SQL Result Cache

Utilisez les conseils de mise en cache des résultats au niveau de l'application pour contrôler le comportement de mise en cache. Les conseils du cache de résultats SQL sont prioritaires sur le mode de cache de résultats et les annotations de table du cache de résultats.

Vous pouvez utiliser les conseils du cache de résultats SQL comme suit :

  • Utilisation du conseil RESULT_CACHE

  • Utilisation du conseil NO_RESULT_CACHE

  • Utiliser le conseil RESULT_CACHE dans les vues

Utilisation du conseil RESULT_CACHE

Lorsque le mode de cache des résultats est MANUAL, le conseil /*+ RESULT_CACHE */ indique à la base de données de mettre en cache les résultats d'un bloc de requête et d'utiliser les résultats mis en cache dans les exécutions futures.

Pour plus d'informations, reportez-vous à Utilisation du conseil RESULT_CACHE et à Conseil RESULT_CACHE.

Utilisation du conseil NO_RESULT_CACHE

Le conseil /*+ NO_RESULT_CACHE */ indique à la base de données de ne pas mettre en cache les résultats dans les caches de résultats du serveur ou du client.

Pour plus d'informations, reportez-vous à Utilisation du conseil NO_RESULT_CACHE et à Conseil RESULT_CACHE.

Utiliser le conseil RESULT_CACHE dans les vues

Le conseil (hint) RESULT_CACHE s'applique uniquement au bloc de requête dans lequel il est indiqué. Si le conseil n'est indiqué que dans une vue, seuls ces résultats sont mis en cache.

Pour plus d'informations, reportez-vous à Utilisation du conseil RESULT_CACHE dans les vues et à Conseil RESULT_CACHE.

SYSDATE_AT_DBTIMEZONE Sélectionner un fuseau horaire pour SYSDATE sur Autonomous Database

SYSDATE_AT_DBTIMEZONE permet un traitement spécial dans une session pour la valeur de date et d'heure renvoyée dans les appels vers SYSDATE et SYSTIMESTAMP.

Selon la valeur de SYSDATE_AT_DBTIMEZONE, la date et l'heure sont affichées en fonction du fuseau horaire Autonomous Database par défaut, du temps universel coordonné (UTC) ou du fuseau horaire que vous avez défini dans la base de données.

Propriété Description
Type de paramètre Booléen
Valeur par défaut FALSE
Modifiable ALTER SESSION, ALTER SYSTEM
Plage de valeurs TRUE | FALSE

Fuseau horaire par défaut d'Autonomous Database

Le fuseau horaire Autonomous Database par défaut est Temps universel coordonné (UTC) et, par défaut, les appels vers SYSDATE et SYSTIMESTAMP renvoient la date et l'heure au format UTC.

Pour modifier le fuseau horaire de la base de données, vous pouvez exécuter l'instruction suivante.

Cet exemple définit le fuseau horaire de la base de données sur UTC-5.

ALTER DATABASE SET TIME_ZONE='-05:00';

Cet exemple définit le fuseau horaire de la base de données pour la côte est des Etats-Unis : America/New_York et l'heure est automatiquement ajustée aux commutateurs d'heure d'été :

ALTER DATABASE SET TIME_ZONE='America/New_York';
Remarque

Vous devez redémarrer l'instance Autonomous Database pour que la modification prenne effet.

Une fois que vous avez défini le fuseau horaire de la base de données, par défaut, SYSDATE et SYSTIMESTAMP continuent à renvoyer la date et l'heure au format UTC (SYSDATE_AT_DBTIMEZONE est FALSE par défaut). Si vous définissez SYSDATE_AT_DBTIMEZONE sur TRUE dans une session, SYSDATE et SYSTIMESTAMP renvoient le fuseau horaire de la base de données.

Pour plus d'informations sur l'utilisation de la clause SET TIME_ZONE avec ALTER DATABASE, reportez-vous à Définition du fuseau horaire de la base de données dans Oracle Database 19c ou Oracle Database 23ai.

Utilisation de SYSDATE_AT_DBTIMEZONE dans une session

Lorsque SYSDATE_AT_DBTIMEZONE est défini sur FALSE dans une session, les appels vers SYSDATE et SYSTIMESTAMP renvoient des valeurs en fonction du fuseau horaire Autonomous Database par défaut, Temps universel coordonné (UTC).

Lorsque SYSDATE_AT_DBTIMEZONE est défini sur TRUE dans une session, les appels vers SYSDATE ou SYSTIMESTAMP renvoient la date et l'heure en fonction du fuseau horaire de la base de données.

Remarque

La définition de SYSDATE_AT_DBTIMEZONE sur TRUE n'a d'incidence que sur l'utilisation de SYSDATE et SYSTIMESTAMP en tant qu'opérateurs dans le code SQL d'application (par exemple, dans les interrogations, les opérations LMD et CTAS). Lorsque vous utilisez ce paramètre, il est recommandé que le fuseau horaire de votre client/session corresponde au fuseau horaire de votre base de données.

Exemple

L'exemple suivant renvoie des dates et des heures pour deux fuseaux horaires différents, en fonction de la valeur du paramètre SYSDATE_AT_DBTIMEZONE :

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
_____________
-05:00

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00 
Remarque

Lorsqu'une requête SYSDATE ou SYSTIMESTAMP est exécutée dans SQL Worksheet d'actions de base de données, la valeur d'heure et de date renvoyée est au format UTC (lorsque le paramètre SYSDATE_AT_DBTIMEZONE est défini sur TRUE ou FALSE). Pour obtenir le fuseau horaire de la base de données lorsque vous travaillez dans Database Actions, utilisez TO_CHAR() comme suit :

SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00