در محیط Container Database می توان در سطح هر containerء، از Time Zone به خصوصی استفاده کرد این امکان در نسخه 12cR1 هم وجود داشت. اسامی Time Zoneها از طریق ویوی V$TIMEZONE_NAMES قابل مشاهده است و با دستور “ALTER DATABASE SET TIME_ZONE” می توان Time Zone دلخواه را برای هر PDB تنظیم کرد:
SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> ALTER DATABASE SET TIME_ZONE='Asia/Tel_Aviv'; Database altered. SQL> alter session set container=IranPdb; Session altered. SQL> ALTER DATABASE SET TIME_ZONE='Asia/Tehran'; Database altered. SQL> alter session set container=cdb$root; Session altered. SQL> startup force; SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> SELECT dbtimezone FROM DUAL; DBTIMEZONE ------------- 'Asia/Tel_Aviv' SQL> alter session set container=IranPdb; Session altered. SQL> SELECT dbtimezone FROM DUAL; DBTIMEZONE ----------- 'Asia/Tehran'
در اوراکل 21c قایلبت جدید و البته ساده ای در این زمینه اضافه شد که این ویژگی در هنگام اجرای ابزار dbca تنظیم timezone را برای هر PDB ممکن می سازد(در زمان ساخت PDB) که در ادامه نحوه استفاده از این ویژگی را مشاهده می کنید:
[oracle@oLinux7 ~]$ dbca -silent -createPluggableDatabase -pdbName KievPdb -sourceDB db21c -pdbTimezone 'Europe/Kiev' Enter PDBADMIN User Password: Prepare for db operation 13% complete Creating Pluggable Database 15% complete 19% complete 23% complete 31% complete 53% complete Completing Pluggable Database Creation 60% complete Executing Post Configuration Actions 100% complete Pluggable database "KIEVPDB" plugged successfully. Look at the log file "/oracle21c/base/cfgtoollogs/dbca/db21c/KievPdb/db21c.log" for further details. [oracle@oLinux7 ~]$ sqlplus "/as sysdba" SQL> alter session set container=KIEVPDB; Session altered. SQL> SELECT dbtimezone FROM DUAL; DBTIMEZONE ----------- 'Europe/Kiev'