oracle decode 12c怎么用跟版本无关 , 所有的oracle中decode用法都一样 。
decode()函数简介:
主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);
使用方法:
Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
From talbename
Where …
其中columnname为要选择的table中所定义的column,
·含义解释:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的理解如下:
if (条件==值1)
then
return(翻译值1)
elsif (条件==值2)
then
return(翻译值2)
......
elsif (条件==值n)
then
return(翻译值n)
else
return(缺省值)
end if
注:其中缺省值可以是你要选择的column name 本身 , 也可以是你想定义的其他值,比如Other等;
oracle12c怎么安装1、按照正常步骤安装好数据库后,此时存在一个CDB和一个PDB,通过lsnrctl status命令可以看监听是否正常及是否监听到PDB;
2、数据库起来后 , 缺省PDB为mount状态,通过执行alter PLUGGABLE database pdb1 open;或者执行alter PLUGGABLE database all open;来打开PDB数据库 , 通过执行alterPLUGGABLE database pdb1 close;或者alter PLUGGABLE database all close;来关闭PDB数据库;
3、登录PDB,首先必须在TNSNAMES文件中加入如下内容:
pdb1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = THINKED)(PORT = 1521))
(CONNECT_DATA =https://www.04ip.com/post/
(SERVICE_NAME = pdb1)
)
)
在设置了以上内容后 , 可以执行以下命令登录PDB:
$sqlplus sys/xifenfei@pdb1 as sysdba
或者在以sysdba登录CDB后,执行以下命令:
sqlalter session set container=pdb1;
4、创建用户
创建用户默认的是container=all,在cdb中只能创建全局用户(c##开头),会在cdb和所有的pdb中创建该用户(但是pdb中的全局用户需要另外授权才能够在pdb中访问) 。在pdb中创建的用户只能为本地用户 。
按照以上内容理解一般我们日常使用的业务用户应该是建立在PDB下的 。
5、用户授权
用户授权默认情况下是只会给当前container,在cdb中也可以指定container=all,对所有open的pdb且存在该用户都进行授权 。
6、修改参数
在ROOT中修改参数,默认情况和指定container=all/current均是所有open的pdb都生效 。
通过测试我们发现在独立修改pdb参数之时,其本质是在pdb_spfile$基表中插入或者修改相关记录 。
通过对pdb_spfile$基表的分析 , 证明pdb中不同于root的参数是记录在root的PDB_SPFILE$基表中 。整个CDB的工作原理是如果在PDB_SPFILE$中无相关参数记录,则继承cdb的参数文件中的值,如果PDB_SPFILE$中有记录则使用该值覆盖cdb参数文件值 。
进一步的,删除pdb_spfile$基表中相应值来进行验证,pdb的参数值会自动继承cdb中的参数 。
在oracle 12c中pdb数据库默认是不起来的 , 下面介绍一下pdb起关的一些常用命令 。
默认状态:
SQL show pdbs
CON_ID CON_NAMEOPEN MODERESTRICTED
2 PDB$SEEDREAD ONLYNO
3 PDB1MOUNTED
4 PDB2MOUNTED
全部开启pdb:
SQLalter pluggable database allopen;
Pluggable database altered.
全部关闭pdb:
SQL alter pluggable database all close immediate;
Pluggable database altered.
当然也可以对个别pdb库关闭或开启:
SQL alter pluggable database PDB1 close immediate;
Pluggable database altered.
SQL alter pluggable database PDB1 open;
Pluggable database altered.
怎么样让pdb随着instance起来而起来呢?需要写一个TRIGGER来拉动pdb
conn / as sysdba
CREATE TRIGGER open_all_pdb
AFTER STARTUP
ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open';
END open_all_pdb;
/
7、ORACLE 12C的Enterprise Manager Database Express 12c相对于11G和10G的Enterprise Manager,从功能上说确实精简了很多,比如不支持在线查看AWR,不支持在线操作不备份,不支持对SCHEDULER的操作等等,减少了功能的同时也大大的降低了其使用难度,不用向以前以前还需要启动dbconsole,需要配置资料库等等一些繁琐的操作,还经常出现一些莫名其妙的问题不得不重建EM 。预测几年之后EM Express的使用人说可能会增加(数据库升级到12C是一个因素,有些人毕竟不会购买GC) 。在12C的Express版本中,默认情况下只需要在对应的pdb用户下执行如下操作即可启用EM Express
设置http端口
exec DBMS_XDB_CONFIG.SETHTTPPORT(http_port_number);
设置https端口
exec DBMS_XDB_CONFIG.SETHTTPSPORT(https_port_number);
注意:Each container must use a unique port for EM Express,同时对于有些机器缺省带的IE8,在进行EM登录时会报错,出现不能登录的现象,一般升级到IE9就应该可以正常使用 。
Oracle 12c怎么创建表啊,今天刚装的,什么都不懂,求各位大神指教?。?我们都知道oracle数据库是以表的方式来管理数据,所有的数据都是存放在表中的,如果我们没有创建表的话,数据是不能直接放在数据库中的,那么,我们该怎么在oracle中创建表呢?
我们可以使用create table语句在oracle中创建表,创建表的具体语法为:create table tablename (columnname datatype);其中tablename为我们要创建的表的名字,columnname为我们要创建的表中的列的名字,datatype表示列的数据类型以及长度,这里要注意的是,我们在创建表的时候必须要指定表的唯一的名字 , 以及列的唯一名字,否则数据库就不知道是怎么回事的 。
Oracle12c的OracleDependency怎么用?C#Winfrom//窗体成员变量
OracleDependency dep;
OracleConnection conn;
OnChangeEventHandler notifyHandler = new OnChangeEventHandler(OnNotificaton);
//连接DB按钮事件
private void btnConnect_Clicked(object sender, EventArgs e)
{
conn = new OracleConnection("User Id=morven;Password=tr;Data Source=mh");
conn.Open();
}
//注册监听
private void btReg_Click(object sender, EventArgs e)
{
OracleCommand cmd = new OracleCommand("select * from tab_cn", conn);
【oracle12c怎么用 oracle12c使用教程】dep = new OracleDependency(cmd);
//指定Notification是object-based还是query-based,前者表示表(本例中为tab_cn)中任意数据变化时都会发出
//Notification;后者提供更细粒度的Notification,例如可以在前面的sql语句中加上where子句 , 从而指定
//Notification只针对查询结果里的数据,而不是全表 。
dep.QueryBasedNotification = false;
//是否在Notification中包含变化数据对应的RowId
dep.RowidInfo = OracleRowidInfo.Include;
//指定收到Notification后的事件处理方法
dep.OnChange= notifyHandler;
//是否在一次Notification后立即移除此次注册
cmd.Notification.IsNotifiedOnce = false;
//此次注册的超时时间(秒),超过此时间 , 注册将被自动移除 。0表示不超时 。
cmd.Notification.Timeout = 0;
//False表示Notification将被存于内存中,True表示存于数据库中,选择True可以保证即便数据库重启之后,消息仍然不会丢失
cmd.Notification.IsPersistent = true;
OracleDataReader odr = cmd.ExecuteReader();
Console.Write("Registration completed. "DateTime.Now.ToLongTimeString()Environment.NewLine);
}
//注销监听
private void btUnreg_Click(object sender, RoutedEventArgs e)
{
dep.RemoveRegistration(conn);
Console.Write("Registration Removed. "DateTime.Now.ToLongTimeString()Environment.NewLine);
}
//监听处理
static private void OnNotificaton(object src, OracleNotificationEventArgs arg)
{
//可以从arg.Details中获得通知的具体信息,比如变化数据的RowId
DataTable dt = arg.Details;
Console.Write("Notification Received. "DateTime.Now.ToLongTimeString() "Changed data(rowid): " arg.Details.Rows[0]["rowid"].ToString()Environment.NewLine);
}
关于oracle12c怎么用和oracle12c使用教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 快手直播不用声卡连接电脑,快手直播不用声卡能直播?
- 视频号的标签怎么查找啊,视频号怎么贴标签
- 年度热门模拟经营游戏游戏,十大模拟经营游戏排行
- 包含mysql基于binlog同步redis的词条
- go语言进程退出代码 go语言进程退出代码是什么
- 命令行传文件到linux,向linux传输文件
- 什么是oracle的存储过程,oracle存储过程有什么用
- 平均值函数python 平均值函数公式怎么用
- 小程序开发商授权,微信小程序开发商