![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
fanyuna
我是JAVA专业的,望以后与大家共同学习,共同进步。
展开
-
安装oracle12.2.0.1的辛苦历程
背景:电脑上本来装了oracle 11g,但是由于系统用的是12.2版本的,同事说12c 兼容11g,但11g 支持不了12c。因此需要将11g的卸载掉,再装12c,花了几个小时终于搞好了,将同事导出的dmp也导入进来了。完全卸载oracle的步骤见:https://wenku.baidu.com/view/6ba7ef9eb04e852458fb770bf78a6529647d3591.ht...原创 2020-02-13 16:29:25 · 2315 阅读 · 0 评论 -
系统表SYSCOLUMNS和SYSOBJECTS的字段含义及xType值的含义
xType char(2) 对象类型。可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMAR转载 2012-07-11 15:16:32 · 3582 阅读 · 0 评论 -
DELETE与TRUNCATE的区别
1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些. Truncate table does not generate rollback information and redo records so it is much faster than转载 2012-07-24 17:09:54 · 943 阅读 · 0 评论 -
PowerDesigner生成SQL应注意的问题
PowerDesigner生成SQL:要确保你用的是PDM即Physical Data Model选择“database”——"change current DBMS"——选择要导出的数据库类型(SQL\oracl)然后“database”——"generate database"导出就可以了 如何将Conceptual Data Model (CDM)转换成Physical原创 2012-11-20 16:30:21 · 1399 阅读 · 0 评论 -
珍藏的网址
CXF webservice相关: http://cnjava.blog.51cto.com/1208887/335630值得看的博客:http://jurisp.iteye.com/?show_full=true hibernate缓存:http://www.iteye.com/topic/249465http://jinnianshilongnian.iteye.c原创 2011-10-11 14:18:30 · 1753 阅读 · 0 评论 -
MySQL,SQLSERVER,ORACLE获取数据库表名及字段名
1、MySQL获取表名:用“show tables”命令。在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来。其中“db”是指你的数据库的名称,比如说Tables_in_productdb。获取某个表的字段: 用“desc tablename”命令。取得方式和上面类似。 此外,还可用MySQL数据库转载 2013-11-14 09:48:09 · 1024 阅读 · 0 评论 -
MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)
讨人喜欢的 MySQL replace into 用法(insert into 的增强版)在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。在 SQL Server 中可以这样处理: if not exists (select 1 from t where id = 1) insert in转载 2014-08-18 18:05:18 · 795 阅读 · 0 评论 -
浅谈oracle中row_number() over()分析函数用法
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码。 row_number转载 2014-08-26 22:34:40 · 536 阅读 · 0 评论 -
mysql中key 、primary key 、unique key 与index区别
一、key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_name varchar(100) default NULL, operation_time datetime default NULL, logrecord_operation v转载 2014-10-23 10:41:24 · 619 阅读 · 0 评论 -
mybatis 自增主键配置
mybatis自增主键配置(?)mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下在mybatis中对于自增主键的配置。不返回自增主键值如果考虑到插入数据的主键不作为其他表插入数据的外键使用,那么可以原创 2014-11-19 14:36:02 · 3302 阅读 · 0 评论 -
oracle中rownum和rowid的区别
rownum和rowid都是伪列,但是两者的根本是不同的,rownum是根据sql查询出的结果给每行分配一个逻辑编号,所以你的sql不同也就会导致最终rownum不同,但是rowid是物理结构上的,在每条记录insert到数据库中时,都会有一个唯一的物理记录 ,例如 AAAMgzAAEAAAAAgAAB 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 3转载 2014-11-27 16:46:23 · 578 阅读 · 0 评论 -
Oracle修改字段类型方法总结
有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20));2、假设字段有数据,则改为nvarchar2(20)可以直接执行:alter table tb modify (name nvarchar2(20));3、转载 2014-11-25 18:54:28 · 537 阅读 · 0 评论 -
oracle的substr函数的用法
oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] ) 如: substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would retu转载 2015-10-08 15:17:13 · 735 阅读 · 0 评论 -
mybatis批量增加(oracle,mysql)
最近工作中有批量导入需求,最开始用循环单条插入(因为当时限制最多30条,效率感觉没什么影响),后来用户提议能不能一次100条,为了提高程序效率就想到了用mybatis的批量插入。主键采用序列增长,数据库是oracle,代码如下: "inserts" parameterType="java.util.List">转载 2015-11-27 15:09:30 · 1610 阅读 · 0 评论 -
Oracle 排序中使用nulls first 或者nulls last 语法
Nulls first和nulls last是Oracle Order by支持的语法如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)使用语法如下:--将nulls始终放在转载 2016-05-17 16:55:41 · 2834 阅读 · 0 评论 -
ORA-00257: 归档程序错误。在释放之前仅限于内部连接
数据库突然不能够正常连接,连接出现错误:ORA-00257: 归档程序错误。在释放之前仅限于内部连接 。首先数据库日志文件有两种:联机日志文件和归档日志文件,联机日志文件会将之前的覆盖,不会做备份。而归档日志文件会做备份,这样就造成了归档日志空间已满,解决方法:如果真的是归档日志空间已满的话,把旧的归档日志导到其他磁盘,腾出磁盘空间。 也可以添加新的归档目的盘。转载 2017-04-24 11:05:40 · 1631 阅读 · 0 评论 -
数据库数字字段查看是否是小数
1、SQLServer数据库select * from @tb where d<>round(d,0)2、oracle数据库SELECT C_NUM,CASEWHEN C_NUM - TRUNC(C_NUM) = 0 THEN'整数'ELSE'非整数'ENDFROM (SELECT 3.000 C_NUMFROM DUALUNION ALLSELECT 3.1...转载 2018-10-26 14:22:20 · 4952 阅读 · 0 评论 -
mybatis批量添加时数字丢失精度问题
背景:参与开发的系统A要与系统B交互,系统B使用的是SQLServer数据库,为了快速开发当时想采用dblink实现,但为了安全性起见,还是采用接口实现,接口的客户端和服务端都是自己写,采用的Mybatis操作数据库,批量插入。问题:A系统的数据同步至B系统时,小数的精度丢失了。排查:断点跟踪了接口客户端、服务端的数据,到插入SQLServer数据库之前数字数据都是正确的,而且字...原创 2018-11-16 11:08:24 · 3666 阅读 · 4 评论 -
Sybase存储过程报transaction mode错误
报错信息:11:17:53,375 ERROR [AlarmCoreDAO] 告警取消错误:com.sybase.jdbc2.jdbc.SybSQLException: Stored procedure 'sfa_ams_handle_can' may be run only in unchained transaction mode. The 'SET CHAINED OFF' comm转载 2012-06-13 13:42:03 · 4666 阅读 · 1 评论 -
Sybase创建数据库
创建设备脚本:use mastergodisk init name="DEV_DB_ABC_DAT01", physname="E:\sybase\DSFY100\data\DEV_DB_ABC_DAT01.dat", size="128M"goexec sp_deviceattr DEV_DB_ABC_DAT01, dsync, falsego原创 2011-08-15 19:29:28 · 2108 阅读 · 0 评论 -
bitand( ) 函数用法
bitand( ) 函数 <br /> 返回两个数值型数值在按位进行 AND 运算后的结果。 <br /> 语法 <br /> BITAND(nExpression1, nExpression2) <br /> 参数 <br /> nExpression1, nExpression2 <br /> <br /> 指定按位进行 AND 运算的两个数值。如果 nExpression1 和 nExpression2 为非整数转载 2010-06-24 18:20:00 · 28073 阅读 · 0 评论 -
Oracle导入导出数据库
导出数据库:exp 用户名/密码@数据库名 file=盘符:/文件夹/文件名.dmp owner=用户 或 exp 用户名/密码@数据库名 file=盘符:/文件夹/文件名.dmp full=y导入数据库:imp 用户名/密码@数据库名 file=导出的文件 full=y 导出的数据库的表空间、用户名密码得与导入的数据库的一致!! 下面介绍的是导入导出的实例,导入导出看实例基原创 2010-05-02 19:43:00 · 1209 阅读 · 3 评论 -
Oracle递归查询
有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到,但是在数据库中,用SQL语句怎么实现?下面我以最典型的树形结构来说明下如何在Oracle使用递归查询。 为了说明方便,创建一张数据库表,用于存储一个简单的树形结构Sql代码 create table TEST_TREE ( ID NUMBER, PID NUMBER转载 2010-05-07 18:50:00 · 1994 阅读 · 2 评论 -
Oracle 01810: 格式代码出现两次
<br />今晚写了一个PROC,内容大致是这样的:<br />create or replace procedure PRO_AUDIT<br /> p_company_id in VARCHAR2,<br /> p_invalid_date in VARCHAR2,<br /> p_valid_date in VARCHAR2,<br /> p_auditor in VARCHAR2<br />) as<br />v_update_time VARCHAR2(20);<br />转载 2010-08-16 16:49:00 · 2503 阅读 · 1 评论 -
mysql 数据库
<br />mysql 数据库 备份<br /> <br />找到数据库的数据存放位置,一般在 data 目录下。 ]kG"ubHV?h <br />打开data目录我们会发现里面有多个文件夹,其中一些是用我们的数据库命名的,这个就是我们要备份的目标了。其中还有一个 mysql 文件夹这个是存放我们的mysql登录账号等的地方。 U;V7 u/{ <br />接下来,就是备份,把我们的数据库直接复制到其他硬盘,然后下载到自己的电脑就完成这个过程了。 gA5/,wDO <br />tl4V7!U@^z原创 2010-12-11 18:50:00 · 8678 阅读 · 0 评论 -
mysql通过原数据库文件夹的方式恢复数据库的方法
<br />从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。<br /> <br />首先copy相关的数据库文件夹到 mydql/data文件夹下[文件夹内只保存的是数据表的结构信息,并没有数据]<br /> <br />再copy数据文件ibdata1到mysql/data目录下[ibdata1里保存的是各个数据库里的数据文件]<br /> <br />注意:不要直接把整个data文件夹copy过来,只copy需要恢复的数据库的文件夹和ibdata1文原创 2010-12-19 22:00:00 · 1122 阅读 · 0 评论 -
MySql
<br />check the manual that corresponds to your MySQL server version for the right syntax<br /> <br /> 今天向MySQL数据库的某张表里插入数据时,老报上面的错误,后来用SQL直接写语句往数据库里面插,还是同样的错误,在网上查了下,原来表里的字段跟SQL关键字一样,以后得注意了。<br /> <br /> <br /> 下面是mysql的所有关键字,希望自己能够多多注意.<br /> <br原创 2010-12-26 21:41:00 · 701 阅读 · 0 评论 -
mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form' for update in FROM clause
<br />原文地址:http://www.cnblogs.com/chy1000/archive/2010/03/02/1676282.html<br />今天在写 mysql 遇到一个比较特殊的问题。<br />mysql 语句如下:<br /><br />update wms_cabinet_form set cabf_enabled=0 <br />where cabf_id in (<br />SELECT wms_cabinet_form.cabf_id FROM wms_cabinet_for转载 2011-02-27 19:18:00 · 885 阅读 · 0 评论 -
mysql数据库导入导出
<br />从数据库导出数据库文件:<br />1.将数据库mydb导出到e:/mysql/mydb.sql文件中:<br />打开开始->运行->输入cmd 进入命令行模式<br />c:/>mysqldump -h localhost -u root -p mydb >e:/mysql/mydb.sql<br />然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。<br />2.将数据库mydb中的mytable导出到e:/mysql/mytable.sql文件中:<br />c:原创 2011-02-23 16:27:00 · 536 阅读 · 0 评论 -
左连接、右连接和全连接
<br />左连接、右连接和全连接。<br /><br /> A left join(左连接)包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。<br /><br /> 同理,也存在着相同道理的 right join(右连接),即包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录。 <br />而full join(全连接)顾名思义,左右表中所有记录都会选出来。<br /><br /> 讲到这里,有人可能要问,到底什么叫:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。<br原创 2011-04-07 20:13:00 · 652 阅读 · 0 评论 -
数据库修改表结构SQL
数据库修改字段名: alter table T_pda_node_template_item rename column SEQUENCE_NUMBER to SEQUENCE_NUMBER1添加字段:alter table T_pda_node_template_item add SEQUENCE_NUMBER number(18,2)删除字段: alter table T_pda_node_template_item drop column SEQUENCE_NUMBER1原创 2011-04-18 11:03:00 · 609 阅读 · 0 评论 -
Sybase数据库
Sybase SQL Server是一个多库数据库系统。这些数据库包括系统数据库和用户数据库。 而不论是系统数据库还是用户数据库,都建立在数据库设备上。 1. 数据库设备 所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于转载 2011-07-05 11:01:05 · 1784 阅读 · 1 评论 -
取数据库所有表的名称及指定表中所有字段的名称SQL
测试环境是Sybase数据库 取数据库所有用户表的名称(系统表把type的值改为S):select name from DB_DM..sysobjects where type="U"【注:DB_DM是指定的数据库名称】 取指定表的所有字段的名称:selec原创 2011-10-09 14:24:58 · 692 阅读 · 0 评论 -
数据库设计五戒
众所周知,数据库设计的好坏直接关系到数据库运行的效率。根据笔者的经验,对于提升数据库性能来说,合理的数据库设计,比升级服务器的硬件配置,还要来的有效。但是,笔者无论是在跟同事合作,又或者是在论坛上跟相关同行交流的时候,总是会发现有些人有一些不好的数据库设计习惯,影响了数据库的性能,增加了数据库管理员的工作量。 笔者认为,为了提升数据库的性能,在Oracle数据库设计的时候,要做到五戒。一转载 2012-02-15 15:42:24 · 497 阅读 · 0 评论 -
Sybase 数据库日志满 原因及解决方案
一、sybase数据库事务日志满的原因主要是(1)open事务未结束,从未结束的open事务之后的日志都不会被截断(2)大事务,从其之后的日志都不会被截断(3)如果存在复制服务器也会出现该问题,可以加数据库参数解决dbcc checktable(syslogs) 最新日志剩余空间-T 7408(重新计算各个计数器) 二、故障查找定位办法(1)定位open事务所在的d转载 2012-04-12 18:01:44 · 14221 阅读 · 0 评论 -
存储过程相关
在sybase数据库中检查存储过程是否存在,如存在就删除表记录,如不存在就创建。if exists( select 1 from sysobjects where id = object_id( "K_FY..P_EncodeQqTitle" )[name="表名"(判断表是否存在)] and sysstat & 15 = 4 [sysstat & 15 = 3(表)]) drop pr转载 2012-04-28 18:22:28 · 850 阅读 · 0 评论 -
简单三步走堵死SQLServer注入漏洞
SQL注入是什么? 许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。 网站的恶梦——SQL注入 SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管转载 2010-04-13 19:04:00 · 562 阅读 · 0 评论