第一步,建一个表,表数据如下: 第二步:发现叫豆豆的是两只狗,一只是金毛犬,一只狼青. 如果我用 select 宠物名称,宠物大类 from test_1;返回结果就只有一条. 如果我用 select 宠物名称,宠物大类,宠物品种 from test_1;返回结果就是两条. 说明distinct 的作用范围是所有跟在其后的字段,并不是最近的那个字段.这也是为啥,distinct得放在前面的原因.…
oracle数据库根据不同条件给同一字段修改相应的值: 例如:根据职务调整雇员的工资,如果职务为“SALESMAN”或者“ANALYST”工资上调100元,如果职务为“MANAGER”工资上调200元,其它职务工资上调50元. update emp set sal=( case when job in('SALESMAN','ANALYST') then sal+100 when job = 'MANAGER' then sal+200 else sal+50 end ); 查询出当前的orac…
在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_test ( u_id ), goods ), num ) ) -- 插入数据 insert into temp_cwh_test(u_id, goods, num) ); insert into temp_cwh_test(u_id, goods, num) ); insert into temp_cw…
oracle 将当前系统时间戳插入timestamp字段 --insert records 精确到秒:insert into userlogin_his(usrname,logintime) values('test',to_timestamp(to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')); 精确到毫秒:insert into userlogin_his(usrname,logintime) values('…
在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c 中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字段以避免在通用查询中显示,我们往往会创建一个视图来隐藏所需信息或应用某些安全条件. 在12c中,你可以在表中创建不可见字段.当一个字段定义为不可见时,这一字段就默认不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED.要添加或是修改一个不可见字段是非…
oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segment_Name='表名'; 查看用户默认表空是那个 select username,default_tablespace from dba_user…
查看oracle的sql语句历史记录和锁表的情况 (2012-01-04 20:59:59) 转载▼ 标签: 杂谈 分类: database 查询sql的历史记录 select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('用户名') order by t.LAST_ACTIVE_TIME descselect * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc 查看一段时间内的执行情况…
首先,我们定义一个Student类来测试. public class Student { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } } List<Student> data = new List<Student> { ,Name=}, ,Name=}, ,Name=}, ,Name=}, ,Name=}, ,Name=} }; 在这样一个数据中.…
sql 同一张表开两个字段合成一个字段 例如   SQL tab 字段1 字段2 字段3 3 4 莫 合成 tab 字段1 字段2 3-4 莫     SQL SERVER select 字段1 + '-' + 字段2 as 字段1,字段3 as 字段2 from table1; ORACLE select 字段1 || '-' ||字段2 as 字段1,字段3 as 字段2 from table1…
1. 使用oracle创建一张表: SQL> create table loginuser( id ,), username ), password ), email ), descriable ), regdate date); 创建表的语法: CREATE TABLE table_name( columns_name datatype,...... ); 显示创建表的信息: 表已创建. SQL> desc userinfo; 名称 是否为空? 类型 --------------------…
最近在做系统开发的时候需要想Oracle数据库插入超过4000字节的CLOB字段,在网上查询了N久才发现下面的解决方案,故留存以备后查. 我们可以通过创建单独的OracleCommand来进行指定的插入,即可获得成功,这里仅介绍插入clob类型的数据,blob与此类似,这里就不介绍了,下面介绍两种办法 在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段内容时,我们如果通过简单的拼组sql语句来实现插入,显然…
1. 相同字段上的多重索引   在Oracle 12c R1之前,一个字段是无法以任何形式拥有多个索引的.或许有人会想知道为什么通常一个字段需要有多重索引,事实上需要多重索引的字段或字段集合是很多的.在12c R1中,只要索引类型的形式不同,一个字段就可以包含在一个B-tree索引中,同样也可以包含在Bitmap索引中.注意,只有一种类型的索引是在给定时间可见可用的. SQL>create table more_ind as select * from user_objects;Table cr…
使用oracle中自带函数  wmsys.wm_concat(需合并列的字段名) 用法如下: select code,name,wmsys.wm_concat(baname) from tab group by code,name;…
https://blog.csdn.net/funnyfu0101/article/details/52765235 总体原则:1)更新的时候一定要加where条件,否则必然引起该字段的所有记录更新 2)跨表更新时,set和where时,尽量减少扫描次数,从而提高优化 update更新实例: 1) 最简单的形式-单表更新 SQL 代码 --经确认customers表中所有customer_id小于1000均为'北京' --1000以内的均是公司走向全国之前的本城市的老客户:) update cu…
1.oracle主键修改 1.1)首先查看需要修改的表的主键名,默认的情况下,数据库会自动分配 select * from user_cons_columns where table_name='表名': 注意表名可能需要大写,否则可能查不出来. 1.2)删除主键约束 alter table 表名 drop constraint 主键名(通过上一步查找出来) 1.3)添加主键约束 alter table 表名 add constraint 主键名 primary key(字段名1,字段名2...…
http://www.cnblogs.com/lzsu1989/archive/2012/10/17/2728528.html   Oracle  EBS 提供多种报表的开发和输出形式,由于MS Excel在处理数据方面的优势明显,报表输出用Excel打开是很常见的开发项. 但是正是由于Excel的“过于智能而不智能”,导致有时输出字段会被Excel自动处理,导致数据错误.   例如: 系统内部字段,物料编码/订单标号 等等字段在数据库内存储的格式为 varchar, 在某些业务或者需求下,编码…
有这么一个需求,满足只有一个输入框的条件下,支持不同数据列的搜索结果. 说白了,就是这个 输入框  既可以用来 搜索姓名,也可以搜索 年龄,地址等. 分析: 一般情况下,我们的一个输入框对应 数据库 的某一列信息的搜索,比如,要搜索姓名为 ‘李’ 姓开头的,那么对应的 sql 就是 where name like '李%' 但是,现在输入框有了不确定性,不知道用户到底会输入什么,导致我们后台的 sql 不知道该如何对应了, 比如,用户输入 18,很明显,用户是想搜索 年龄为 18 的用户,如果…
在Oracle 10g下,推断依赖性仅仅达到了对象级.也就是说存储过程訪问的对象一旦发生了变化.那么Oracle就会将存储过程置为INVALID状态.所以在为表做了DDL操作后.须要把存储过程又一次进行编译. 在Oracle 11g下,对依赖的推断更加细化,推断到了字段级.尽管有这么好的特性.但我还是建议对表做了DDL操作后,把存储过程再又一次编译一下. Oracle 10g下: SQL> select * from v$version; BANNER ---------------------…
文章结构如下: 1.背景: 生产上查询那些大表然后进行清理,然而发现有SYS_LOB0000093441C00002$$这中表段占用30G(只保留一个月,如果保留更久会更大). 2.LOB介绍 Oracle 数据库中varchar2只能值为4000,PL/SQL中 VARCHAR2 变量类型,字节长度为32767,针对 VARCHAR2 满足不了我们的需要时,Oracle就提出了大数据类型LOB( Large Object,大对象). Oarcle中的LOB类型: 在Oracle中,LOB(La…
       今天遇到一个有意思的小问题,一同事有这样一个需求:在更新表T时,如果只是更新字段C,那么不希望触发该该表的触发器去处理业务逻辑.即想在触发器中做出判断:如果更新了字段C,那么跳出触发器,不处理业务逻辑,如果是更新其它字段,那么让触发器去处理业务逻辑. 他是这样做的     1: if :NEW.C != :OLD.C then 2: return; 3: end if; 但是这样有一个问题:更新不一定值有变化.当更新的值有变化时,它很好的实现了业务逻辑,但是如果更新的值没有变化,那…
查詢表字段明細 select  column_name,data_type,data_length,DATA_PRECISION ,DATA_SCALE from all_tab_columns where table_name='tablename' 字段注釋 select   *   from   user_col_comments; 表注釋 select   *   from   user_tab_comments; 表明細+表注釋+字段明細+字段注釋 select  ATC.OWNER,…
本方法为使用SEQUENCE(序列)   例如有表temp_test结构为: create table TEMP_TEST ( id number, nm varchar(10), primary key(id)   //id为主键,下面的方法把它设为自增字段)     1.建立自增序列TEMP_TEST_IDADD,命名任意,从1开始,每次加1 CREATE SEQUENCE TEMP_TEST_IDADD INCREMENT BY 1 START WITH 1;   2.在表temp_tes…
最近写的功能中有这样一个小功能,根据数据库查询此库中是否有某表,如果有,查询某表下面的某个字段的详细信息 其中一种是... select ATC.OWNER, atC.TABLE_NAME, ATC.COLUMN_NAME, ATC.DATA_TYPE, ATC.DATA_LENGTH, ATC.NULLABLE, ucc.comments from (select ATC.OWNER, atC.TABLE_NAME, ATC.COLUMN_NAME, ATC.DATA_TYPE, ATC.DA…
1.select  表中重复的字段 from  表名 group by 表中的重复的字段 HAVING count(表中的重复的字段)>1 举例说明 : 表名 : psp_cell_model  重复的字段名:mp_no select  mp_no from psp_cell_model group by mp_no HAVING count(mp_no)>1; 举例2: select *  from psp_cell_model where  mp_no in( select  mp_no…
一:查询字符串类型的字段的值不为空的SQL: select * from TB_CMS_FLGTINFO_A t where (t.fsta is not null and t.fsta <>' '); 主:上面的TB_CMS_FLGTINFO_A是表名,fsta是表中的字段 二:查询字符串类型的字段的值为空的SQL: select * from TB_CMS_FLGTINFO_A t where (t.fsta is null or t.fsta =' '); 主:上面的TB_CMS_FLG…
业务描述:按t.truckId,t.riskCode 分组,每个分组里有分数,取分组中分数最大的那条记录. 如:A1 B1   5  6 A1  B1   5  3 A1  B2   2  5 A1  B2   2  1 已经按 A,B分组了 但是 我需要第一条和第三条数据,就可以用这个row_number() over(partition by  排序字段)降序 然后取 rowseq = 1 的数据就可以拿到了 SELECT gg.sumScore AS sumScore, gg.number…
  数据库是否存在某字段 SELECT COUNT(*) FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '表名' AND COLUMN_NAME = '字段名'; 数据库是否存在某张表 select count(*) from user_objects where  object_name = '表名'; 注:表名和字段名一定要大写…
随机排序函数dbms_random.value()用法:select * from tablename order by dbms_random.value() 行数字段rownum用法:select * from tablename where rownum<=10…
日常数据库迁移过程中,发现dmp文件中的表,如果表含有blog类型的字段,无法进行迁移. 以下是我迁移含有blog类型字段表的经验分享' 使用PLSQL Developer进行导出 接着选择需要导出的表 点击[Export]即可导出到a.sql文件中. 导出后,再打开Command Window 输入@后回车选择a.sql即可完成导入.…
rowid 是 oracle 数据库表中的伪列, rowid 首先是一种数据类型,它唯一标识一条记录物理位置, 基于64位编码的18个字符显示.因为 rowid 是伪列, 所以并未真的存储在表中,但可以从表中查询,但不支持插入,更新,删除它们的值. 其他的伪列还有 rownum (行号)   追问 将rownum设为主键时建立几条模拟数据后当根据rownum查询时只能查询出来第一条记录,后来的记录则呢么就查不到了啊,谢谢了.   追答 rownum 是伪列,你不可能把 rownum 作为表的主键…