SERVICE_NAME, SID和schema区别

本文详细解释了Oracle实例的概念,SID与SERVICE_NAME的区别,以及如何通过连接字符串配置客户端与数据库的连接。同时介绍了命名空间的概念及其在Oracle数据库中的应用。

1. SID是Oracle实例名,实例名指的是用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。在windows平台下,则是注册表中oracle_sid值决定。

SID是Oracle实例的唯一名称标识,用户去访问数据库,实际上是向某一个Oracle实例发送请求,oracle实例负责向数据库获取数据。Oracle实例 = 内存结构+后台进程,所以Oracle实例是临时性的;可以通过startup nomount去启动实例,但是注意这时Oracle数据库并没有启动,需要用open去启动数据库;
一个实例只能对应一个数据库,一个数据库可以用多个实例;

 

 


2. SERVICE_NAME指的是listener中的全局数据库名:这个名字是由listener.ora中GLOBAL_DBNAME参数决定的。这个名字代表的是客户端连接到数据库时,tnsnames.ora中service_name参数所对应的值。

GLOBAL_DBNAME=DBNAME.DBDOMAIN

 

 

3. 连接字符串

    配置tnsname.ora时,可以用SID,也可以用SERVICE_NAME.  注意这两个值不一定相同,具体要看数据库服务器中的配置。

 

connect_str =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xxxx
    )
  )

 

 

connect_str =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = xxx)
      (SERVER = DEDICATED)

    )
  )

 

4.  schema 命名空间

命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使用相同的的名字的。Table,View,Sequence,Package等对象共享一个名字空间,所以同一个名字空间中不能有相同的。Indexes,Constraints,Triggers等对象有各自的名字空间,因此可以有相同的名字。

 

一般来说,Schema是基于用户的, 在数据库中创建一个用户,就创建了一个和用户名相同的Shema。

你这个太麻烦了,我想的是现在重新是将整个id数组传入进行查询,那么分页后就通过截断id数组来查询,怎么截断就前端传递的分页数据来定,同时考虑一些边界情况:前端传递的对象是: @Operation(summary = "设备状态监控的参数监控,一次性返回节点测点数据") @PostMapping("/getParameterMonitor") public ActionResult getParameterMonitor(@RequestBody BizMeasurePointPagination bizMeasurePointPagination) { /** * * biz_measure_point * @版本: V5.2.0 * @版权: Copyright @ 2025 引迈信息技术有限公司版权所有 * @作者: 引迈信息技术有限公司 * @日期: 2025-07-15 */ @Data @Schema(description = "列表查询参数") public class BizMeasurePointPagination extends Pagination { /** 关键词搜索 */ @Schema(description = "关键词搜索") private String jnpfKeyword; /** 查询key */ @Schema(description = "查询key") private String[] selectKey; /** 选中数据数组id */ @Schema(description = "选中数据数组id") private Object[] selectIds; /** json */ @Schema(description = "json") private String json; /** 数据类型 0-当前页,1-全部数据 */ @Schema(description = "数据类型 0-当前页,1-全部数据") private String dataType; /** 高级查询 */ @Schema(description = "高级查询") private String superQueryJson; /** 功能id */ @Schema(description = "功能id") private String moduleId; /** 菜单id */ @Schema(description = "菜单id") private String menuId; /** 测点名称 */ @Schema(description = "测点名称") @JsonProperty("measurePointName") @JSONField(name = "measurePointName") private Object measurePointName; /** 测点编码(唯一) */ @Schema(description = "测点编码(唯一)") @JsonProperty("measurePointKey") @JSONField(name = "measurePointKey") private Object measurePointKey; /** 结构树ID */ @Schema(description = "结构树ID") @JsonProperty("sid") @JSONField(name = "sid") private Object sid; /** 属性分类(字典ID) */ @Schema(description = "属性分类(字典ID)") @JsonProperty("attributeTypeId") @JSONField(name = "attributeTypeId") private Object attributeTypeId; /** 测点类型(字典ID) */ @Schema(description = "测点类型(字典ID)") @JsonProperty("measurePointTypeId") @JSONField(name = "measurePointTypeId") private Object measurePointTypeId; /** 单位 */ @Schema(description = "单位") @JsonProperty("unitName") @JSONField(name = "unitName") private Object unitName; /** 是否为关键测点 **/ @Schema(description = "是否为关键测点") @JsonProperty("limitType") @JSONField(name = "limitType") private Integer limitType; /** 上限报警值 */ @Schema(description = "上限报警值") @JsonProperty("upperLimit") @JSONField(name = "upperLimit") private Object upperLimit; /** 下限报警值 */ @Schema(description = "下限报警值") @JsonProperty("lowerLimit") @JSONField(name = "lowerLimit") private Object lowerLimit; /** 时序表字段名 */ @Schema(description = "时序表字段名") @JsonProperty("fieldName") @JSONField(name = "fieldName") private Object fieldName; /** 起始时间 */ @Schema(description = "起始时间") @JsonProperty("startTime") @JSONField(name = "startTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date startTime; /** 终止时间 */ @Schema(description = "终止时间") @JsonProperty("endTime") @JSONField(name = "endTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date endTime; // 测点别名 @Schema(description = "测点别名") @JsonProperty("alias") @JSONField(name = "alias") private String alias; // 单位类型 @Schema(description = "单位类型") @JsonProperty("unitType") @JSONField(name = "unitType") private String unitType; // 瞬时监控0关闭1开启 @Schema(description = "瞬时监控0关闭1开启") @JsonProperty("instantMonitor") @JSONField(name = "instantMonitor") private Integer instantMonitor; // 0是查询参数监控的,1是查询状态评估的 @Schema(description = "0是查询参数监控的,1是查询状态评估") @JsonProperty("typePoint") @JSONField(name = "typePoint") private Integer typePoint; } @Data public class Pagination extends Page{ private long pageSize=20; private String sort="DESC"; private String sidx=""; private long currentPage=1; @JsonIgnore private long total; @JsonIgnore private long records; public <T> List<T> setData(List<T> data, long records) { this.total = records; return data; } }
10-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值