Oracle


模糊搜索
%:表示任意个任意的字符,可以零个字符
_:表示一个 , 任意的字符
name like '8355703%'

select
('前缀' || SEQ) 

select
concat( '前缀',  SEQ )

select 下的 || 是拼接字符串的简写语法糖

独有的特殊的用法

(+)就是连接
就是一个右连接,等同于

select a.*, b.*
from a right join b
on a.b = b.b
以右边的为主

等同于
select  a.*, b.*
from a,b
where a.b = b.b (+)

(+) 放在非主表的一方

Number可以是整数也可以是小数,并可限制精度
Integer不是标准的oracle数据类型,为了兼容才有的。数据库中以number(38)的精度处理。smallint等也是一样。


":="是赋值语句 如: l_name :='sky';
把右边的值给左边

"=" 是判断是否相等. 如: if 1=1 then...
":" 是变量绑定 如: if :P_NAME ='sky' then...

官方文档


http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html


Oracle 12c
安装步骤和常见问题的解决方法
https://www.cnblogs.com/2206411193qzb/p/7352276.html

全新的 Windows 用户 , 官方说千万不要拿它来登录电脑
root
zzzz
界面 :




口令不标准 , 没事
zzzz





安装后 , 处理之前手动忽略掉的环境变量问题

{

分析 :
打开win+r 窗口 , 输入 sqlplus.exe 会提示找不到文件,这就是环境变量问题

解决方案:
我的电脑(右击)->属性->环境变量->下面有个系统变量->找到path(双击)->新建
目录是你自己设定的Oracle的安装位置 , 这是我的path内容:
E:Oracleproduct11.2.0dbhome_1NETWORKADMIN

默认的路径是
C:app ootproduct12.2.0dbhome_1 etworkadmin

把它添加到环境变量里 , 我是写成单独的一个环境变量 , key 我写 Oracle

在文件管理器中根据这个目录依次找到admin,然后复制进path里的新建框
)。 

确认 环境变量 是否配置正确 :

打开win+r 窗口 , 输入 cmd , 然后回车
%Oracle%
出现如下文字说明正常 :

C:Usershzuha>%Oracle%
'C:app
ootproduct12.2.0dbhome_1
etworkadmin' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

确认 环境变量配置正常后Oracle是否也正常了 :

打开win+r 窗口 , 输入 sqlplus.exe
出现此窗口说明正常 :

 


}



常用语句


alter table  CPRD01MT
add ( PRDIMGTIMELIMITED  varchar2(100) default '这是列的默认值 , 不是列的备注' null ) ;

不要默认值的话 , 去掉 ->    default '这是列的默认值 , 不是列的备注'




Select * from A minus select * from B;

以 A 表为主 , 遍历 A 表 , 看哪些是 B 里没有的
https://www.cnblogs.com/lcword/p/5857894.html

LEFT JOIN 
别用特别的语法 --> (+)



Oracle and or 写法
先后顺序

and 的优先级比 or的高 , 所以先处理 and
例如
a or b and c
先计算出 b and c 的结果( 比如 temp ) , 再去计算 a or temp

注意 , 容易出现顺序错误 , 语法是对的 , 但是语义是错的 , 达不到想要的效果

可以写两个 LEFT JOIN
FROM CORD01DT cord01dt
      LEFT JOIN CORD04DT cord04dt ON cord01mt.SEQ = cord04dt.SEQ
      LEFT JOIN CORD01MT cord01mt ON cord04dt.ORDSEQ = cord01mt.SEQ
      
CORD01DT   LEFT JOIN  CORD04DT   LEFT JOIN  CORD01MT
三表都左外连接



AND ( cord04dt.ORDSTATCD = 'OA0801' OR cord04dt.ORDSTATCD = 'OA0802' )
AND cord04dt.ORDSTATCD IN ('OA0801', 'OA0802' )


union 和 union all
https://www.cnblogs.com/yuanchaoyong/p/6213885.html


分组排序
PARTITION BY 根据 xx 分组
https://www.cnblogs.com/shined/archive/2013/01/16/2862809.html

ROW_NUMBER() OVER (
    PARTITION BY CSTMNO 
    ORDER BY CREATEAT DESC
) AS RN
ROW_NUMBER() 可以得到排序后的序号

排序过程中如果有并列的数据的话 , 可以顺位地编号 , 也可以跳跃 : / Oracle Partition By 的使用
https://www.cnblogs.com/jak-black/p/4210653.html

oracle 两表数据对比 ,  取差集---minus
https://www.cnblogs.com/lcword/p/5857894.html


ORACLE中 decode 函数
https://www.cnblogs.com/fengjunming/p/7966441.html



老家
连江
最偏远的村子
两个半的小时

晚上家里人


问题


没权限创建序列表



新的表的主键来自一张序列表 , 但是创建这表的时候
报错 , 说没权限















原文地址:https://www.cnblogs.com/xiaoCong2016/p/8930652.html