Oracle 23ai 对应windows版本安装配置&PLSQL导入pde文件&navicat连接Oracle_oracle导入pde文件
因为有一个pde文件需要查看里面的数据,所以这次需要配置本地oracle数据库,并且导入数据,因为还有navicat,所以就想用navicat去连接查看。
1、找到官网。
Get Started with Oracle Database 23ai | Oracle
2、下载windows版本。
3、下载后解压,运行setup.exe,运行时,会需要输入数据库密码,输入你的密码,并记住该密码。
4、安装成功后
-
打开
任务管理器
或按Win + R
输入services.msc
查看服务管理器。 -
查找以下服务名称:
OracleService
(数据库实例服务)OracleOraDB_TNSListener
(监听程序服务)
如果这些服务正在运行,说明 Oracle 数据库已安装并启动。
5、然后需要查看安装路径下,Oracle\\dbhomeFree\\network\\admin里的listener.ora和tnsnames.ora这两个配置文件。
listen.ora里面会配置tcp连接为localhost和1521的监听程序。
# listener.ora Network Configuration File: E:\\software\\Oracle\\dbhomeFree\\NETWORK\\ADMIN\\listener.ora# Generated by Oracle configuration tools.DEFAULT_SERVICE_LISTENER = FREELISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
如果该配置正常,那么在cmd里输入lsnrctl services,应该会呈现:
6、查看tnsnames.ora,显示是这个。注意,在free版本的oracle 23ai里,服务默认名是FREE
FREE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FREE)
)
)
7、那么用navicat登录时,配置如下,连接名称随意,其他如下。
还要注意,在配置的高级选项里,角色要配置为SYSDBA,这样的话就具有数据导出导入权限。
测试连接成功。
8、pde文件导入。
需要安装PLSQL Developer(navicat我没有尝试成功)。安装完成后,配置
如果连接不上,检查tnsnames.ora有无问题。
导入pde文件选择以下选项:
导入后,即可看到。注意选择创建表格。
oracle修改数据方法:
1、左上角文件-新建-sql窗口,输入sql语句,点击顶部的三角形,就可以执行,执行后一定要点击三角形右边的提交事务(否则数据不会改变),多次执行不提交还会锁死数据库!
2、右击表格,选择编辑数据,编辑时先点击下表格上面的小锁按钮,打开之后,才能修改数据,修改后先点对号,确认修改,然后同样记得提交事务。
3、在表格上方的查询框里输入select * from 你要修改的表格名称 for update;
然后就可以编辑表格数据了,一样的点击小锁按钮,然后修改,确认,提交事务。
另外还有几个报错:
1、ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
这是因为navicat配置不正确,确保连接名和tnsnames.ora里的SERVICE_NAME一致,如果是free版本就是FREE。(另外在文件里添加新的连接没用,具体原因不清楚,free版本好像只能用FREE这个连接),用户名为sys或者system,这是oracle的默认用户,密码是当时安装时设置的密码。
2、ORA-12514: 无法连接到数据库。服务 test 未注册到 host 127.0.0.1 port 1521 中的监听程序。(CONNECTION_ID=0j7PYej/TwWJbd+Nl1uC5g==) 帮助:ORA-12514 - Database Error Messages
这里有几个排查点,排除刚才的两个osa的配置文件是否有问题,oracle服务是否正常运行,navicat的配置问题,均排查完后,cmd输入以下命令:
sqlplus / as sysdba
进入sql命令行后:
SHOW PARAMETER service_names;
SHOW PARAMETER local_listener;
查看配置
确保service_name设置为这个,local_listener如果不是这个,修改下:
ALTER SYSTEM SET local_listener = \'(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))\';
修改后应该正常了。
3、ORA-12899: 在导入的时候报错字段的值太大
Error inserting record into TB_EMP_PERSON:ORA-12899: 列 \"SYS\".\"TB_EMP_PERSON\".\"CREATE_USER\" 的值太大 (实际值: 24, 最大值: 18)帮助:https://docs.oracle.com/error-help/db/ora-12899/
这时候需要设置该字段的值更大一些
ALTER TABLE SYS.TB_EMP_PERSON MODIFY CREATE_USER VARCHAR2(40);
接着清空表格
TRUNCATE TABLE TB_EMP_PERSON;
然后重新导入。导入的时候不要再选删除表或者新建表。
4.ORA-01654: 索引 XXX 无法通过 128 (在表空间 xxx 中) 扩展
这时候需要修改表空间大小。
ALTER DATABASE DATAFILE \'你的oracle所在路径\\ORACLE\\ORADATA\\FREE\\你的表空间对应的dbf的名字.DBF\'AUTOEXTEND ON NEXT 100M MAXSIZE 30G;
路径可以通过oracle的环境变量路径查看。
如果报错提示设置的值太大,可以调整下大小。
总结下:
1、oracle数据库配置需要有服务名称,端口一般为1521,本地配置为localhost,用户名sys或者俄式system,需要连接时选择sysdba权限。
2、oracle数据库也需要开启服务。