精华内容
下载资源
问答
  • 在ORACLE中 两个字符型字段相加

    千次阅读 2018-11-07 13:16:06
    在ORACLE中 两个字符型字段相加

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

      SELECT   ZIDUAN1||ZIDUAN2   AS   ZIDUAN   FROM   TABLE(合并)  
       
      SELECT   ZIDUAN1||'AND'||ZIDUAN2   AS   ZIDUAN   FROM   TABLE

    Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 引言: MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数...

    引言:  在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数...

    环境:MyBatis 3.2 , Oracle, Spring 3.2

      SQL Snippet in XML Configuration:

    <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">
        <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">
    	   SELECT U_USER_INFO_SEQ.Nextval as ID from DUAL
       </selectKey>
    	
        insert into U_USER_INFO
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            ID,
          </if>
          <if test="userName != null" >
            USER_NAME,
          </if>
          <if test="realName != null" >
            REAL_NAME,
          </if>
        .....
    </insert>
    

    要点是这里使用了selectKey来定义返回新生成的PrimaryKey,这个情况仅仅适用于Oracle。

    需要注意的地方是在Java代码中使用Integer类型,但是在MyBatis的映射文件中,使用java.math.BigDecimal类型,否则会报类型转换或者不匹配的错误。

    其他比如MySQL或者SQLServer的情况适用于以下情况:

        <insert id="insert" parameterType="Spares"   
                useGeneratedKeys="true" keyProperty="id">  
                insert into spares(spares_id,spares_name,  
                    spares_type_id,spares_spec)  
                values(#{id},#{name},#{typeId},#{spec})  
            </insert>  
    使用useGeneratedKeys/KeyProperty来实现插入数据的时候,来完成新生成主键的返回。


    其中异常信息的解决:

    异常信息:

       org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: 无效的列类型: getBigDecimal not implemented for class oracle.jdbc.driver.T4CRowidAccessor
    ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: getBigDecimal not implemented for class oracle.jdbc.driver.T4CRowidAccessor; nested exception is java.sql.SQLException:
    无效的列类型: getBigDecimal not implemented for class oracle.jdbc.driver.T4CRowidAccessor


    问题解决:

        问题是在Java代码中设置返回的主键数据类型,其中返回的数据类型为java.lang.Integer,而非BigDecimal和Long. 但是在MyBatis中的映射文件中的类型为java.math.BigDecimal.



    展开全文
  • 在oracle中,sqlplus / nolog是做什么用的

    万次阅读 多人点赞 2019-04-28 10:32:57
    sqlplus /nolog,conn /as sysdba 之所以能够登录,在于...2 oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于操作系统认证。 为什么这样说呢?你当前...

    sqlplus /nolog,conn /as sysdba 之所以能够登录,在于oracle登录时的身份认证方式。可以试一下这个:sqlplus /nolog,conn abcd/sss as sysdba,你发现也能够登录成功。

    2 oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于操作系统认证。
    为什么这样说呢?你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如是gooooal,它在你电脑的ora_dba组中。
    可以在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,双击它,看到成员列表中有“gooooal”。
    也就是在conn /as sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于ora_dba组,因此才可以登录成功。
    你可以把ora_dba组中的“gooooal”用户删除,再conn /as sysdba,就发现进不去了。

    3 密码文件验证可以查阅相关资料,百度oracle的身份验证方式,就可以查到相关资料。

    4 其实在linux或unix环境下,安装oracle是要设置很多东西的,比如用户和用户组的设置等,不像在windows下,安装傻瓜化了。

    5 关于安全性,如果将oracle安装在本地,其实你本地就是oracle服务器,所以权限高一些。你用哪个用户来启动oracle实例?哪个用户来mount数据库?哪个用户来打开数据库?从而才能进行之后的select等sql操作?
    在oracle实例等还没有启动的时候,oracle数据库里面建的用户肯定是不能使用的。所以才会有操作系统身份验证。用这个用户,来启动oracle实例、装载数据库等。之后才能做oracle表的增删改查。

    sqlplus zhangsan/123,是以用户名为zhangsan,密码为123的用户登录。而sqlplus /nolog则是不以任何用户登录,相当于只是打开一个登录窗口而已,用户名跟密码是接下来才输入。一般这样做的目的是防止别人看到你的用户密码

    sqlplus /nolog一般是打开sqlplus软件,但不进行连接数据库的操作。
    /nolog是不登陆到数据库服务器的意思
    如果没有/nolog参数,sqlplus会提示你输入用户名和密码

    sqlplus /nolog一般是启动sqlplus但不进行连接操作

    /nolog 选项会启动sqlplus, 但不连接数据库

    sqlplus / as sysdba是一种简化写法,其实是省略了用户名和密码,完整的写法是sqlplus  sys/password  as  sysdba而sqlplus  /nolog是另外的用法了,nolog表示不进行登录,仅仅是进入sqlplus软件而已

    SQL是一个标准。

    SQLPlus是一个客户端工具,除了执行标准的SQL外,还可以执行工具本身的一些命令,比如登录服务器、写文件、读文件等操作。

    展开全文
  • 在oracle中要谨慎使用when others then

    千次阅读 2013-06-27 10:03:10
    在oracle中一般不要使用when others then,否则会掩盖软件的错误提示。 如果只是判断查不到数据时的处理,应该用when no_datafound then 待续...

    在oracle中一般不要使用when others then,否则会掩盖软件的错误提示。

    如果只是判断查不到数据时的处理,应该用when no_datafound then

    待续...

    展开全文
  • HIS的数据库为Oracle, 因此需要在Oracle中在原有用户的基础上,再增加一个用户,该用户仅能查看HIS中为其开放的视图。这也是为了系统之间的安全考虑的。2. 解决方案经过技术查阅,找到的解决方案如下:(1)以system...
  • 如何在Oracle中查看表的索引

    千次阅读 2018-12-28 15:26:45
    但是oracle中不适用。 oracle中表的索引信息存在 user_indexes 和 user_ind_columns 两张表里面, 其中, user_indexes 系统视图存放是索引的名称以及该索引是否是唯一索引等信息, user_ind_columns 统视图存放的...
  • Oracle 根据经纬度计算两地之间的距离 获得弧度的函数: CREATE OR REPLACE FUNCTION Radian(d number) RETURN NUMBER is PI number :=3.141592625; begin return d* PI/180.0; end ; ...
  • 在ORACLE中,两个字符型字段相加

    万次阅读 2011-06-19 12:47:00
    SELECT ZIDUAN1||ZIDUAN2 AS ZIDUAN FROM TABLE(合并) SELECT ZIDUAN1||AND||ZIDUAN2 AS ZIDUAN FROM TABLEOracle的CONCAT()只允许两个参数;换言之,一次只能将两个...不过,在Oracle中,我们可以用||来一
  • 如何在ORACLE中创建表时添加注释

    万次阅读 2019-03-29 15:11:48
    转载自 oracle中创建表时添加注释 https://www.cnblogs.com/xujiating/p/6236592.html 创建新表MESSAGES CREATE TABLE MESSAGES( MESSAGE_ID NUMBER(6) PRIMARY KEY, SEND_USER VARCHAR2(200), RECEIVE_USER VARCHAR...
  • select * from taccount t where regexp_like(t.vc_code, '[a-zA-Z]'); 
  • 我们以插入某条数据时需要更新其中一个字段的值为例,即sql语句执行insert操作,触发器进行update操作。 解决方案 这个问题说来也简单,首先需要明白oracle触发器的before与after的区别。 详细的了解可以...
  • 在Oracle中查询Date类型字段的数据

    千次阅读 2016-09-17 17:30:15
    利用函数:to_char和to_date ...select * from [表名] where to_char([需要查询的字段],'yyyyMMdd') between '20130601' and '20130630' ...select * from [表名] where [需要查询的字段] between to_date('...
  • oracle中选出某个字段里面最大值的记录的sql语句怎么写? 2种写法: select max(testfld) from test_table; select testfld from test_table  where rownum = 1  order by testfld desc; 一般只用第一种就行了。
  • oracle中的unique约束是用来保证... 我们可以创建表时或者创建好后通过修改表的方式来创建oracle中的unique约束。 下面是一些创建unique约束的例子: create table unique_test(id number,fname varchar2(20),lname
  • 如题,我使用ORACLE创建表时系统提示ORA-00904无效的标识符,经检查,发现是字段命名时与ORACLE关键字发生冲突,只要更改字段名称即可解决该问题.
  • select * from Oracle.alarmLog where alarmtime between to_date(2007-03-03 18:00:00,yyyy-mm-dd hh24:mi:ss) and to_date(2007-09-04 18:00:00,yyyy-mm-dd hh24:mi:ss) 
  • 使用数据库为Oracle 因为将数据从历史表导入当前表时,因字段个数不对,导致不能导数据。 一、将历史表的字段增加一个或者多个的SQL语句。 1、增加一个字段:(增加字段时,只能排已有字段的后面,不能插到已...
  • Oracle中保留两位小数

    万次阅读 多人点赞 2017-06-02 08:23:47
    最近的项目开发,有个业务需求是界面显示的数字需要保留两位小数,目前我想到的解决方法有两种: (1)写SQL的时候,直接保留两位小数 (2)java代码里面将查询出来的数进行格式化处理,保留两位小数 先...
  • Oracle中as关键字

    千次阅读 2016-02-15 14:50:16
    在Oracle中as关键字不能用于指定表的别名 Oracle中指定表的别名时只需原有表名和表的别名之间用空格分隔即可 但as关键字可以用于指定列的别名 但存储过程中如果列的别名与原有列名相同,运行时会报错...
  • 概述本博文将介绍如何不使用DBCA(数据库配置助手)在Oracle 11删除数据库。1- 导入数据库的SID,如果没有定义的话export ORACLE_SID=SIDNAME2- 以操作系统认证连接数据库[oracle@Oracle11 ~]$ sqlplus / as ...
  • 在oracle中。":"有2中意思; 一:给变量赋值, 如, names varchar2(10) :='aa'; 这是把"aa"赋值给变量names 二:表示引用。即引用表中字段所对应的值 如:emp表中有个name为“Bob”,那么 : old.name 的...
  • Oracle 的Top写法

    万次阅读 2017-04-07 09:15:42
    由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum 的组合来实现select top n的查询。 简单地说,实现方法如下所示: select 列名1 …列名n from ( select 列名1 …列名n from 表名...
  • Oracle中获得日期中的年份

    万次阅读 2011-09-01 15:10:38
    在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来。 一种常用的方法是:to_number(to_char(sysdate,'yyyy')) 还有一种更好的方法,那就是使用oracle提供的Extract函数,使用方法是: extract(year
  • oracle 的不等于

    千次阅读 2018-07-23 13:43:05
    在Oracle中,不等于号有几种方式:&lt;&gt;,!=,^=  例1、查询AGE不等于23的数据 select * from test where age &lt;&gt; 23; 例2、查询NAME不为lisi的数据 select * from t...
  • oracle中的Start With关键字

    万次阅读 多人点赞 2018-09-04 16:57:45
    在oracle中遇到了Start With查询语句,经过查询资料了解现在总结一下. 参考文章:https://www.cnblogs.com/zyzdisciple/p/7873584.html 首先我们可以新建一个demo表做测试 create table DEMO ( ID varchar2(10) ...
  • Oracle中的小于号

    千次阅读 2011-07-15 18:31:19
    在Oracle中 小于号前后得加转义符号 S.ENTRANCEDATE #ENTRANCEDATEEND#
  • oracle中字符串连接符||

    千次阅读 2019-05-29 16:10:52
    1、oracle和mysql都遵循sql99标准(ANSI制定的,1999年) oracle中 select 后面必须要有...正确,但是在oracle中错误 hadoop中hive(蜂巢)数据库支持sql92标准 2、dual:伪表 select concat('hello',' world') ...
  • 在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTest INCREMENT...
  • Oracle中update的用法

    万次阅读 2007-12-09 10:43:00
    在Oracle中一张表中修改某一项时,用以下语句update Module set ModuleName=add Module where Moduleid=5 Module是表名而不是数据库名

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,638,204
精华内容 655,281
关键字:

在oracle中