oracle sql
FightingITPanda
don't talk,show me the code
展开
-
[mysql] 删除重复数据,只保留一条
需求:业务表有脏数据了,很多重复数据,导致报错现要将重复数据都删掉,只留一条实现:1、搞一张表,模拟数据想要的结果:panda留一条、kongfu留一条2、思路:1、分组,将重复数据查出来2、通过id区分,留id最小的一条3、删除,刨除id最小的一条3、脚本:DELETEFROM panda_testWHERE panda_name IN ( SELECT panda_name FROM ( SELECT panda_name原创 2020-11-20 16:42:33 · 336 阅读 · 0 评论 -
mysql : 表中一列值赋给另一列
需求背景:表中需要增加修改时间字段 update_time历史数据处理: 从print_date字段同步(print_date 存的是2020-11-12 09:56:48 格式的字符串)1、增加字段:alter table panda_test add column update_time datetime(0) DEFAULT null COMMENT '修改时间';效果:2、print_date 字段值赋给update_time 字段:update panda_test set原创 2020-11-12 10:32:45 · 1929 阅读 · 0 评论 -
mysql :整张表中两列得值 赋给 另一张表两列
需求背景:主表A表,业务需求复杂,表结构逐渐庞大,进行拆表,新建一张表B表,主键id自增,外键放主表A表id,目前展示:A 与 B 表对应关系上脚本:insert into B(letter_id,receipt_time) select id ,STR_TO_DATE(sign_date,"%Y-%m-%d") from A;tip:指定从a表查得两列插入到B表得哪两列id 不用指定,主键自增...原创 2020-11-11 14:32:34 · 362 阅读 · 1 评论 -
PL/SQL 同一个窗口切换连接,窗口缓存问题
故事背景:我们项目有3个环境,dat,uat,vir,Oracle数据库部署在3太服务器上,需要经常切换连接、切库查找问题通常我们的做法是在pl/sql左上角小钥匙那切换常用连接最近发现一个问题:当前登录是dat环境,脚本在dat查询没有数据,明确的是uat库是有的,切完连接之后查询也没有,其他脚本的查询结果也是dat库的数据,新启一个查询窗口就好了原因:PL/SQL默认是开启支持多连接的,解决:工具-》首选项-》Oracle - 》连接原理:百度上说这个问题的很少,这个博主讲的很好原创 2020-07-28 13:24:43 · 823 阅读 · 1 评论 -
Oacle-获取CLOB类型xml数据中指定节点数据
语法select extractvalue(xmltype(colomnName),'TraceNodePath') from tableName;本地小实验一下:一、建表create table panda(id number,xmlParam clob);二、插入数据:insert into panda values(1,to_clob('<xml> <head> <TransCode>dms03004</TransCode&g原创 2020-07-01 19:19:18 · 939 阅读 · 0 评论 -
ORA-01403:no data found ORA-06512:at line 12
Q:今天执行存储过程突然报了这个错存储过程很简单declare maxdocno integer; --最大单证流水号 currno integer := 1; --初始条件 makenum integer := 100;--造数据数量【变量】 tBatNo varchar2(1); --批次号 tSysYY varchar2(2); -- 系统年 maxno varchar2(7); -- 版本最大流水begin --目前版本表流水号不规范,先虚拟下版本表批次,用原创 2020-06-29 18:02:08 · 1344 阅读 · 0 评论 -
ORA-01790:expression must have same datatype as corresponding expression
今天写了个union all 的sql语句,执行报错如下很显然表达式必须与相应的表达式具有相同的数据类型两个sql对应的列字段类型不一致,果然我一个sum() 一个‘ ’,改为0就可以了原创 2020-06-05 17:28:56 · 6698 阅读 · 0 评论 -
ORA-00923: FROM keyword not found where expected
是我太久没用oracle了吗,列别名用 “ ”sql如下,简单单表查询--盘库表select notice_target as '通知对象选择',attentiontext as '注意事项' from T_PANKU where uq_apply_code = '220200528521765C000004'竟然报错了百度一番,原因是列别名用 “ ”改后:select notice_target as "通知对象选择",attentiontext as "注意事项" from T原创 2020-05-28 17:43:05 · 356 阅读 · 0 评论 -
sqlserver登录名和用户名的区别和联系-先存着-后续研究
总括:登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙,这里所说的大楼就是sql server服务器,而房间就是这个sql server服务器中的具体的库,要注意登录名是存在于master数据库的syslogins表中,用户名是在各个具体的库下建立的(也就是要先进入各个库), 最关键的是:一个登录名可以和多个不同库下的用户做映射,但是在同一个库下只能和一个用户做映射,并且一个用户...转载 2018-08-31 15:12:26 · 2807 阅读 · 0 评论 -
PL/SQL DDL(数据定义语言)Data Defination Language
–管理数据库表 DDL(data defination language)数据定义语言 不需要commit 每一条ddl语句都包含一个隐式提交语句--创建表create table company_emp(empno number(4) primary key not null,--员工工号ename varchar2(10 byte),--员工名称job varch...原创 2018-03-30 10:37:19 · 334 阅读 · 0 评论 -
Select 语句执行顺序以及如何提高Oracle 基本查询效率
今天把这几天做的练习复习了一下,不知道自己写得代码执行的效率如何以及要如何提高,于是乎上网开始研究一些材料,现整理如下: 首先,要了解在Oracle中Sql语句运行的机制。以下是sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。转载 2017-12-27 18:12:53 · 644 阅读 · 0 评论 -
Oracle中sql执行过程
建两张简单测试表 select *from pandab b select * from pandaa a 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 eg: select k from pandaa a left join pandab b 注:我们知道左链接语句是left join on形式,k并不是a,b表里的字段,oracle先进行语法分析原创 2017-12-27 18:05:10 · 332 阅读 · 0 评论 -
powerDesigner生成sql一些常见问题解决
1.自动添加了聚簇索引,在pl/sql里运行会说左括号缺失。 create table LDPolSignTask ( TaskId VARCHAR2(20) not null, MakeDate DATE not null,原创 2017-06-06 14:19:35 · 7124 阅读 · 0 评论 -
sql常见函数
decode:顾名思义 解码 eg: decode(status,0,”待抽取”,1,“正在抽取”,2,“抽取异常”,3,“已抽取”) 解释:对status进行解码,status在表里存的值是 0,1,2,3,4, 显示出来对应是:“待抽取“ “ 正在抽取“ “ 抽取异常“ “已抽取“原创 2017-06-02 18:08:03 · 298 阅读 · 0 评论 -
Oracle 外连接和(+)号的用法
表 pandaa pandab id name id job parent_id 1 panda 1 吃 11 2 kongfu 2 喝 12 3 nuddle 4 睡 13**左外链接**:原创 2017-07-31 14:49:57 · 724 阅读 · 0 评论 -
varchar PK varchar2
varchar varchar2存放定长数据 存放可变长字符数据最大长度2000字符 4000字符原创 2017-09-18 15:18:01 · 566 阅读 · 0 评论 -
Oracle设置表/列注释
设置表注释:comment on table 表名 is '注释' eg:comment on table lcnotemanage is '照会管理表' 设置列注释:comment on column 表名.列名 is '注释' eg:comment on column lcnotemanage.sendemail IS '发件人邮箱地址'; 在pl/sql里执行完之后,鼠标放到表名上原创 2017-09-11 15:25:33 · 572 阅读 · 0 评论 -
索引advantageVSdisadvantage
**advatage**创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高原创 2017-11-15 17:13:08 · 269 阅读 · 0 评论 -
执行删除/更新数据业务的速度优化
最近总是遇到系统运行速度很慢的情况,老大让我来排查一下,现在本地执行下同样的操作,想着重现一下,毕竟本地重现的话就可以跟断点,很容易找到问题的所在,结果发现本地的速度嗖嗖的,那就是用户数据库的问题了,果断链接用户数据库再测,果然很慢,打断点跟踪,发现做减人操作时,要删除很多张表的数据,其中有三张表执行的特别慢,举一delete from LCUWMaster where ContNo = ‘2017原创 2017-12-14 17:09:02 · 296 阅读 · 0 评论 -
Oracle 索引的创建,删除,修改
**1.创建索引 CREATE INDEX** CREATE [unique] INDEX [user.]index //索引名 ON [user.]table //建立索引的表名 (column [ASC | DESC] [,column[ASC | DESC] ] … )//建立索引的列,一个索引最多有16列,long列、long raw列不能建索引列 ,asc升序排列(默认)desc原创 2017-12-14 16:53:37 · 1320 阅读 · 1 评论 -
了解sql执行顺序-优化sql-提高执行速度
**7.select 8.distinct (plan) ,name,riskcode ,duty 1. from pandaa a 3. inner join pandab b 2.on a.plan = b.id (相当于 select distinct (plan) ,name,riskcode ,duty from pandaa a,pandab b where a.p原创 2017-12-27 17:21:49 · 407 阅读 · 0 评论 -
PowerDesigner生成sql建表语句
1.建物理模型 2.建表 如图 3.建表语句即生成 4.复制粘贴到pl/sql即可创建表 5.物理模型 pdm文件可以保存下来,下次直接双击打开即可。原创 2017-06-06 14:11:43 · 3123 阅读 · 0 评论