Oacle12c支持可插入数据库(PDB)在一个统一的数据库(CDB)中具有不同的字符集、时区文件版本和数据库时区。

出于性能原因,Oracle建议将数据库时区设置为UTC(0:00),因为不需要转换时区。

多租户体系结构允许您为每个可插入数据库指定一个不同的数据库时区,并使用容器数据库的时区作为默认值。

在容器数据库级别设置时区与为非cdb实例设置时区相同。CDB设置是所有可插入数据库的默认值。

1. 检查容器数据库的当前时间

sqlplus / as sysdba

SQL> select dbtimezone from dual;

2. 查看PDB时区

SQL> alter session set container=orclpdb;

SQL> SELECT dbtimezone FROM DUAL;

3. 修改PDB时区,根据实际需要设置时区

SQL> ALTER DATABASE SET TIME_ZONE='+00:00';

报错处理:

ORA-30079: cannot alter database timezone when database has TIMESTAMP WITH
LOCAL TIME ZONE columns

1) 清除带时区格式的时间字段表

--sql begin----

--删除用户指定表----

declare v_sql varchar(255);

cursor cur_tb is select 'drop table '|| owner || '.' || table_name || ' purge ' sqltext from dba_tables

where table_name = 'T_BOS_DBTIMEZONEINFO'

AND OWNER <> 'SYS' AND OWNER <> 'SYSTEM';

begin

--打开游标cur_tb--

open cur_tb;

fetch cur_tb into v_sql;

loop

--判断游标cur_stu所指是否有数据行--

if cur_tb%found then

--将游标cur_stu当前行取出存放到变量中--

begin

execute immediate v_sql;

exception

when others then

dbms_output.put_line('删除用户表异常:'||sqlerrm);

end;

fetch cur_tb into v_sql;

else

exit;

end if;

end loop;

--关闭游标cur_tb--

close cur_tb;

end;

--sql end----

2) 修改PDB时区

alter database set time_zone='+00:00';

4. 修改好后需要重启pdb

SQL> alter pluggable database orclpdb close;

SQL> alter pluggable database orclpdb close immediate;

SQL> alter pluggable database orclpdb open;

SQL> select dbtimezone from dual;

附(标红为国内常用时区):

  • UTC-12(IDL - 国际换日线)
  • UTC-11 (MIT - 中途岛标准时间)
  • UTC-10(HST - 夏威夷-阿留申标准时间)
  • UTC-9:30(MSIT - 马克萨斯群岛标准时间)
  • UTC-9(AKST - 阿拉斯加标准时间)
  • UTC-8(PST - 太平洋标准时间A)
  • UTC-7(MST - 北美山区标准时间)
  • UTC-6(CST - 北美中部标准时间)
  • UTC-5(EST - 北美东部标准时间)
  • UTC-4(AST - 大西洋标准时间)
  • UTC-3:30(NST - 纽芬兰岛标准时间)
  • UTC-3(SAT - 南美标准时间)
  • UTC-2(BRT - 巴西时间)
  • UTC-1(CVT - 佛得角标准时间)
  • UTC(WET - 欧洲西部时区,GMT - 格林威治标准时间)
  • UTC+1(CET - 欧洲中部时区)
  • UTC+2(EET - 欧洲东部时区)
  • UTC+3(MSK - 莫斯科时区)
  • UTC+3:30(IRT - 伊朗标准时间)
  • UTC+4(META - 中东时区A)
  • UTC+4:30(AFT- 阿富汗标准时间)
  • UTC+5(METB - 中东时区B)
  • UTC+5:30(IDT - 印度标准时间)
  • UTC+5:45(NPT - 尼泊尔标准时间)
  • UTC+6(BHT - 孟加拉标准时间)
  • UTC+6:30(MRT - 缅甸标准时间)
  • UTC+7(IST - 中南半岛标准时间)
  • UTC+8(EAT - 东亚标准时间/中国标准时间(BJT))
  • UTC+9(FET- 远东标准时间)
  • UTC+9:30(ACST - 澳大利亚中部标准时间)
  • UTC+10(AEST - 澳大利亚东部标准时间)
  • UTC+10:30(FAST - 澳大利亚远东标准时间)
  • UTC+11(VTT - 瓦努阿图标准时间)
  • UTC+11:30(NFT - 诺福克岛标准时间)
  • UTC+12(PSTB - 太平洋标准时间B)
  • UTC+12:45(CIT - 查塔姆群岛标准时间)
  • UTC+13(PSTC - 太平洋标准时间C)
  • UTC+14(PSTD - 太平洋标准时间D)

详情见https://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA%E5%88%97%E8%A1%A8#UTC+8%EF%BC%88EAT_-_%E6%9D%B1%E4%BA%9E%E6%A8%99%E6%BA%96%E6%99%82%E9%96%93/%E4%B8%AD%E5%9C%8B%E6%A8%99%E6%BA%96%E6%99%82%E9%96%93(BJT)%EF%BC%89

Oracle12c修改时区的更多相关文章

  1. win7 无法修改时区和时间

    电脑用的win7系统, 今天调试程序的时候,想改下时间,才发现修改时区的按钮点了没反应,修改时间的按钮是灰色的,没法保存. 在网上搜了一下,想着应该是用的Ghost安装系统的问题,不过也找到了解决办法 ...

  2. 树莓派(Raspberry Pi)修改时区

    1.安装ntp sudo apt-get install ntpdate 2.修改时区 tzselect 3.选择自己的时区 1)选择大洲 2)选择国家 3)选择城市 4)选择YES 5)或者使用命令 ...

  3. 云服务器 ECS Linux 服务器修改时区的两种方式

    在云服务器 ECS Linux 系统中,以 Centos6.5 为例,可以通过如下两种方式,修改系统时区: 可以使用命令 tzselect,修改时区.操作示例: [root@localhost ~]# ...

  4. ubuntu下修改时区

    使用一个虚拟机服务,其时区设置的为格林兰标准时区,我北京时区在东八区,较其快八个小时. 修改时区需要执行 tzselect 一步步选择下来,注意确认后的information Therefore TZ ...

  5. ubuntu server修改时区

    公司用的是ubuntu server 服务器在美国亚马逊VPS 现在要修改时区 执行:tzselect 或直接修改 /etc/timezone 文件,我是改成(America/Los_Angeles) ...

  6. MySQL修改时区的方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式.配置文件方式及代码方式,需要的朋友可以参考下 方法一:通过mysql命令行模式下动态修改 1.1 ...

  7. Laravel项目修改时区

    Laravel项目修改时区 最近做了一个支付宝支付的应用,现在还在开发过程中,今天早上起床之后先调试了一下项目,模拟支付了一笔(¥9999.00) 2333支付宝的沙箱环境啦,屌丝程序猿哪来这么多钱- ...

  8. linux修改时区

    Linux修改时区 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任 CentOS6: 查看以前的时区: [root@localhost mysq ...

  9. centos 7修改时区

    在线上环境遇到时间差八小时,怀疑是时区的原因: 然后再linux上运行: date 发现输出的是UTC时间,时间与现在差八个小时 然后通过以下命令去修改时区: ln -sf /usr/share/zo ...

随机推荐

  1. cenos 7 中firewalld开放服务端口

    转载 CentOS 7 为firewalld添加开放端口及相关资料   1.运行.停止.禁用firewalld 启动:# systemctl start  firewalld 查看状态:# syste ...

  2. Oracle-优化SQL语句

    建议不使用(*)来代替所有列名 用truncate代替delete 在SQL*Plus环境中直接使用truncate table即可:要在PL/SQL中使用,如: 创建一个存储过程,实现使用trunc ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第6节 static静态_15_静态代码块

    static的特殊用法, 静态代码块 加上构造方法,做测试 又创建一个对象 静态代码块 只执行一次 后续在学习jdbc的时候,静态代码块很有用途.

  4. Java 基础-基本数据类型与表达式

    基本数据类型 基本概念 标识符 标识符与内存中的某个位置对应,Java 中标识符的规范如下: 必须由大小写字母.下划线.美元符号.数字组成 首字母只能是大小写字母.下划线.美元符号 变量 变量的值可以 ...

  5. idea中gradle的springboot的项目热部署

    1:在build.gradle中添加热部署依赖(我gradle版本是5.5.1) // 添加 热部署依赖implementation 'org.springframework.boot:spring- ...

  6. vue—两个数组,去重相同项

  7. [Git] 010 对 [Git 008] 的补充:实现 commit 不计次数

    回顾:[Git] 008 status 与 commit 命令的补充 的 "2.4" [Git 008] 的 "2.4" 使用 git commit --ame ...

  8. sql server死锁跟踪

    我们知道,可以使用SQL Server自带的Profiler工具来跟踪死锁信息.但这种方式有一个很大的敝端,就是消耗很大.据国外某大神测试,profiler甚至可以占到服务器总带宽的35%,所以,在一 ...

  9. expdp和impdp的应用-高版本通过dblink导入到低版本

    今天接到要进行数据库用户的部分数据迁移需求,需求如下 IMP.WO.INSA开头的表只要结构,不要数据 B.TEMP.TMP开头的表不用导 其他表需要导出数据和表结构,同时要求导出此用户下的所有其他对 ...

  10. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [dx.service.ItemService] found for dependency

    在整合ssm框架,测试service层的时候报错 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: ...