# 以19c为例

docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

# 后台安装并启动容器
docker run -d -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB -e ORACLE_PWD=123456 -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=AL32UTF8 -v D:/Developer/OracleData:/opt/oracle/oradata --name oracle1521 registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

等10分钟,再执行以下命令,否则执行失败。

# 创建root用户 密码root
docker exec -it oracle1521 /bin/bash
sqlplus / as sysdba
//切换数据库
alter session set container=ORCLPDB;
//创建用户
create user root identified by root;
//授权
grant dba to root;

之后可以用ORCLPDB的root/root登录

--创建表空间
CREATE TABLESPACE TEST_RMMIS2
LOGGING
DATAFILE '/opt/oracle/oradata/test_rmmis2.dbf' 
SIZE 32M 
AUTOEXTEND ON 
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;


--创建临时表空间
CREATE TEMPORARY TABLESPACE TEST_RMMIS2_TEMP
TEMPFILE '/opt/oracle/oradata/test_rmmis2_temp.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;


--创建用户
create user test_rmmis2
  identified by "test_rmmis2"
  default tablespace TEST_RMMIS2
  temporary tablespace TEST_RMMIS2_TEMP
  profile DEFAULT
  quota unlimited on TEST_RMMIS2;

-- Grant/Revoke role privileges
grant dba to test_rmmis2;

-- Grant/Revoke system privileges
grant unlimited tablespace to test_rmmis2;

查询数据库版本和字符集

SELECT * FROM v$version;


SELECT parameter, value
FROM nls_database_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

字符集不对应(导致数据库导入会提示值过大)
字符集为ZHS16GBK才不会出现字符值过长的问题
默认为:AL32UTF8
 

cmd中:
sqlplus /nolog
conn / as sysdba
shutdown immediate
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SHUTDOWN IMMEDIATE
STARTUP

docker 进入容器连接上sysdba后可直接修改密码:

sqlplus /nolog
conn / as sysdba
ALTER USER sysdba IDENTIFIED BY new_password;

plsql乱码现象:

参考文章:PLSQL中文乱码_plsql没有中文选项怎么添加-CSDN博客

测试环境导出pde文件通过plsql导入本地环境,导致中文乱码

先去测试环境执行:

select userenv('language') from dual

然后去修改本地的环境变量:

再次导入数据即可解决中文乱码问题,记住改完配置一定要重启plsql客户端。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐