oracle中如何用sql语句显示当前的数据库名称

oracle中如何用sql语句显示当前的数据库名称,第1张

使用sys用户查询

select name from v$database;

v$database视图是当前数据库实例的各种信息,其中包括

Name --数据库名称

created --创建日期

RESETLOGS_CHANGE --重置日志的次数",

RESETLOGS_TIME --打开重置日志的时间

PRIOR_RESETLOGS_CHANGE# --在上一次重置日志时的SCN值

PRIOR_RESETLOGS_TIME --上一次重置日志的时间

等等

START WITH 定义数据行查询的初始起点;CONNECT BY prior 定义表中的各个行是如何联系的;connect by 后面的"prior" 如果缺省,则只能查询到符合条件的起始行,并不进行递归查询;条件2:col_1 = col_2,col_1是父键(它标识父),col_2是子键(它标识子)。条件3过滤递归前相应节点及其子节点,如果上级节点不满足则下级节点自动过滤掉;条件4过滤递归后相应的节点或子节点,如果上级节点不满足则下级结点自动提升一级。系统伪列:CURRVAL AND NEXTVAL 使用序列号的保留字ROWID 记录的唯一标识ROWNUM 限制查询结果集的数量LEVEL 显示层次树中特定行的层次或级别CONNECT_BY_ROOT 返回当前层的根节点(当前行数据所对应的最高等级节点的内容)SYS_CONNECT_BY_PATH(<column>, <char>) 函数实现将从父节点到当前行内容以"path"或者层次元素列表的形式显示出来CONNECT_BY_ISCYCLE 须带参数NOCYCLE,当前行中引用了某个父亲节点的内容并在树中出现了循环,如果循环显示"1",否则就显示"0"。CONNECT_BY_ISLEAF 判断当前行是不是叶子。如果是叶子显示"1",如果不是叶子而是一个分支(例如当前内容是其他行的父亲)就显示"0"而在 Oracle 10g 中,只要指定"NOCYCLE"就可以进行任意的查询 *** 作。与这个关键字相关的还有一个伪列——CONNECT_BY_ISCYCLE, 如果在当前行中引用了某个父亲节点的内容并在树中出现了循环,那么该行的伪列中就会显示"1",否则就显示"0"。--创建测试表,增加测试数据create table test(superid varchar2(20),id varchar2(20),mc varchar2(20));insert into test values('0','1','A1');insert into test values('0','2','A2');insert into test values('1','11','A11');insert into test values('1','12','A12');insert into test values('2','21','A21');insert into test values('2','22','A22');insert into test values('11','111','A111');insert into test values('11','112','A112');insert into test values('12','121','A121');insert into test values('12','122','A122');insert into test values('21','211','A211');insert into test values('21','212','A212');insert into test values('22','221','A221');insert into test values('22','222','A222');commit;--层次查询示例select level||'级' jc,lpad(' ',(level-1)4)||id id,mcfrom test start with superid = '0' connect by prior id=superid;select level||'级' jc,connect_by_isleaf mxf,lpad(' ',(level-1)4)||id id,mcfrom test start with superid = '0' connect by prior id=superid;--给出两个以前在"数据库字符串分组相加之四"中的例子来理解start with connect by --功能:实现按照superid分组,把id用";"连接起来--实现:以下两个例子都是通过构造2个伪列来实现connect by连接的。

sql 递归查询的方法:

方法一:T-SQL递归查询

with Dep as

(

select Id,DeptCode,DeptName from Department where Id=1

union all

select dId,dDeptCode,dDeptName from Dep

inner join Department d on depId = dParentDeptId

)

select from Dep

方法二:PL/SQL递归查询

select Id,DeptCode,DeptName

from Department

start with Id = 1

connect by prior Id = ParentDeptId;

首先你要确定你所使用的DBMS产品,因为在ORACLE和SQL SERVER等DBMS的SQL语法有局部的不同,但大体上语句是一样的。

CREATE TALBE tmpDB (

tid int identity(1,1) primary key, --表主键,可以不用加not null一般使用了primary key就可默认为not null

tname varchar(100) not null, --节点名称

fatherID int --父节点ID

)

GO

生成树形数据结构

select

from

table

start with id =

connect by prior id =

以上就是关于oracle中如何用sql语句显示当前的数据库名称全部的内容,包括:oracle中如何用sql语句显示当前的数据库名称、connect by prior、如何实现数据库SQL递归查询在不同数据库中例子源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9506493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存