Oracle 11g相对来说卸载起来比19好卸载多了。来自一个直接莽着下完19再下11g的憨憨怨念。
单单就sql语句来说,感觉和mysql差别不是很大。然后是踩坑比较多的dblink,
首先是要确保自己登录的账户有创建dblink的权限,public database link的创建需要sys的授权。
创建好的非public修饰的dblink只能由创建用户使用,可以先对自己当前的数据库进行查询dblink,查看一下已经有的dblink名称。
代码如下
select * from user_objects where object_type = 'DATABASE LINK'
接下来是创建dblink,需要注意的是dblink_name是唯一的,不要起重名了哈。我public没创建过,碎碎念我的docker老有问题。oracle卸载太烦了。QAQ。我的VS好像也有点问题,net framework到现在还没自定义版本。😔气死。vscode写C#,nuget也老有问题,解决了再开一个新的。顺便把word嵌套表格读取也写了。立个小flag。
create database link [link_name]
connect to [user_name]
identified by [password]
using'
(description =(
address_list=(protocol=[])
(host=[conn address like 1.1.1.1])
(port = [port number])
)
)
(CONNECT_DATA=(sid=[secret])))
'
接下来就是一个很需要注意的地方就是connect_data中的sid。
要注意的是如果写成了service_name,Oracle可能会报错ora-12514。问题在于无法识别,emmm反正要是不改成sid的话,就要去找配置文件把那部分配上去。还挺折腾的。生产数据库不能这么搞,所以对于那种报错,可以改成sid就sid吧。
试了试创作助手,欸嘿,如下是sid和service_name的区别:
SID和Service Name是Oracle数据库中的两个关键术语。 SID是System ID的缩写,表示Oracle实例在操作系统中的唯一标识符。 在Oracle数据库中,每个实例都有一个唯一的SID。 Service Name是一个逻辑名称,用于标识唯一的数据库服务(即数据库)。
因此,SID和Service Name之间的主要区别是,SID是Oracle实例在操作系统中的唯一标识符,而Service Name是用于标识数据库服务的逻辑名称。 通俗来说,SID是Oracle数据库引擎的名称,而Service Name是Oracle数据库实例的名称。
对了,再贴一下如果不想要databaselink 的话,可以使用以下语句
drop database link [link_name]
谨慎使用drop,QAQ如果没有账户授权限制的话,许愿报名司考,今年可以一次通过。