使用sqlplus本地能连接Oracle数据库,但使用navicat和plsql图形化软件连接的时候就会报协议适配器错误,或者连接不上报navicat cannot create oci
这是因为数据库监听端口配置的有问题,或者navicat客户端OCI环境和可执行sqlplus版本低于Oracle数据库版本
1.检查数据库的listener.ora和tnsnames.ora配置文件
以下为我的数据库单实例配置文件:
listener.ora:
# listener.ora Network Configuration File: D:\app\oracle12c\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = D:\app\oracle\product\12.1.0\dbhome_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.207)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\app\oracle\product\12.1.0\dbhome_1\log
tnsnames.ora:
# tnsnames.ora Network Configuration File: D:\app\oracle12c\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.207)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.207)(PORT = 1521))
2.下载Oracle12c客户端连接文件
百度网盘链接:链接:https://pan.baidu.com/s/16uloD0ZT6Z644su2UFYHtA 提取码:1111
下载完成后将其放入navicat客户端文件夹下,打开navicat→工具→选项→环境→将sqlplus和oci环境的路径替换为刚才下载的两个文件夹的路径.
注意:我这里的客户端连接文件为64位的,如使用的是32位的系统,请前往Oracle官网下载.
登录数据库成功后,只能创建公用用户,但创建不了本地用户
这是因为Oracle12C版本的新特性导致的,以下为Oracle12C版本新特性的概述:
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个
可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,
实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。
当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。
cdb相当于操作系统,调用并管理各个pdb。pdb相当于真正提供业务需求的数据库实例。oracle 12c安装后只创建了cdb,需要自己生成相应的pdb。
oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db.
Oracle Database 12c 第 1 版安装的时候会默认安装一个名称为pdborcl的实例,Oracle Database 12c 第 2 版默认名是orclpdb
所以,当我们安装完数据库,使用sys或者system等公用用户以DBA的身份登录后,默认是在CDB容器中,而在CDB容器中是只能创建公用用户,不能创建本地用户的.PDB中才能创建.
1./*查看当前使用容器*/
select sys_context('USERENV','CON_NAME') FROM DUAL;
2./*查看pdb容器状态*/
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
3./*打开PDB*/
alter pluggable database PDBORCL open;
4./*切换到PDB*/
alter session set container=PDBORCL;
5./*查看当前使用容器*/
select sys_context('USERENV','CON_NAME') FROM DUAL;
/*===================================================================*/
切换到PDB容器之后就可以创建本地用户了:
1./*创建临时表空间*/
create temporary tablespace shop_temp
tempfile 'D:\app\oracle12c\oradata\orcl\pdborcl\maxingping_temp.dbf' size 50m autoextend on
next 50m maxsize 20480m extent management local;
2./*创建数据表空间*/
create tablespace shop logging datafile 'D:\app\oracle12c\oradata\orcl\pdborcl\maxingping_temp.dbf' size 50m autoextend on
next 50m maxsize 20480m extent management local;
#这里分配的表空间为2G,也可以设置为不限制
3./*创建用户并指定表空间*/
create user maxingping identified by 123456 default tablespace maxingping temporary tablespace maxingping_temp;
4./*给用户授予权限*/
grant connect,resource,dba to maxingping;
现在就可以用自己创建的本地用户登录PDB数据库了
早晨过来,顺便在小摊上买了套程序员合订本,好久没有看过这类杂志了。翻开来看,却无法消遣,看看光盘,偶然觅到小球称量,不得其所。只好找找海明校验算法,然GOOLE BAIDU搜索再三,却全是介绍和软考大纲之类,不得详解。再觅WIKI,校验、CRC、海明等等皆无其踪。郁闷之极。好象只有大学的计算机组成原理中才有
1、worksplace 的设置问题:edit configuration这样,每个工程都可以有一个workplace,方便切换。2、文件夹包含问题3、包含.dat文件问题.dat 实际为宏定义一些参数,在宏定义的参数名称前加上 -D 即可4、版本问题5、IAR中设置Tab键方法IAR中设置Tab键方法发下: Tools --》 Options --》Editor --...
项目使用的饿了么的Element-Ui,权限树使用其树形控件:刚开始没有特殊需求,三级分支,效果看着还可以。但是接下来的新需求:增加页面操作按钮权限,即达到四级分支,同时要求四级权限布局方式为横向,而且操作按钮权限非固定四级树,但是样式要求一致。这样子就很难操作了,如果单单是四级树为横向,还可以调调样式完成。本来想修改element的tree控件源码来实现,网上查了一些资料,还没有很好
<script language="javascript" type="text/javascript">var newasp_fontsize=9;var newasp_lineheight=12;</script> 用Eclipse进行可视...
C/C++学习记录:深入理解三种传参方式 之前对传参这方面的东西一直是知其然不知所以然。概念用法怎么用都知道,但是其真正的内部操作流程确实是理解不足。这两天一直在总结shell脚本的笔记,写累了正好研究一下传参这方面的内容。 这篇笔记中记录了关于这方面我的理解过程和心得。关于本篇笔记的深度,也是到汇编为止不再深入,就我个人理解来看已经是足够了。目录一、关于三种传参方式1. 值传参1.1 简单总结1.2 我的疑问2. 引用传参2.1 简单总结2.2 我的疑问3. 指针传参3.1 简单总结3.2 我
测试环境DPVS: Inspur NF5270M3, E5-2630 2.60GHz 24 cores, memory 96GReal Server: 6 台核数不同的机器,148 个 redis-serverBench Client: 8 台核数不同的机器,24000 个连接 ping官方推荐用 f-stack nginx 压测,还要让 real server 跑 dpdk 太麻烦。使用 red...
stdafx.cpp右键——属性,预编译头选“创建”,其它cpp选“使用”。
npm install react-google-login使用import React from 'react';import ReactDOM from 'react-dom';import GoogleLogin from 'react-google-login';// orimport { GoogleLogin } from 'react-google-login';const responseGoogle = (response) => { console.log(
函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。 函数原型:LONG GetWindowLong(HWND hWnd,int nlndex); 参数: hWnd:窗口句柄及间接给出的窗口所属的窗口类。 nlndex:指定要检索的基于0的偏移量。有效值的范围从0到窗口额外内存空间的字节数,减去4。例如,若指定了12位或多于12位的窗体类的额外存储空间,则应设为第三个32位整数的索引位8(12- 4=8)。要获得任意其他值,指定下列值
练习源码:https://github.com/liaoooyx/Design-Patterns来自:https://www.baeldung.com/java-observer-patternObserver is a behavioral design pattern. It specifies communication between objects: observable and o...
rdd,scala中的占位符“_”
一、直入主题1、先使用cd命令回到AS项目的根目录,也就是gradlew所在的目录,正常来说,你点开Android Studio的Teminal,默认显示的路径就是项目的根目录,如下图所示:2、输入命令:gradlew 子模块名:dependencies,就可以显示出对应项目的依赖树,比如:1)先看看Demo build.gradle设置的依赖关系debugImplementation ...