oracle转mysql笔记

前端之家收集整理的这篇文章主要介绍了oracle转mysql笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
疑问: Oracle中的date要转换成MysqL的datetime oracle的date是可以存储时分秒的 MysqL: varchar 是可变长字符串,不预先分配存储空间,长度不超过5000,如果存储长度大于此值,定义字段类型为text,独立出来一张表,用主键来对应 MysqL的存储过程调用存储过程 需要CALL test(v_name,v_id); MysqL与 oracle中的替换 1 Oracle: select sys_guid() from dual; MysqL: SELECT REPLACE(UUID(),'-','') FROM DUAL; 因为MysqL的UUID()生成的序列中间有'-'需要进行替换一下。 2 to_char(sysdate,'yyyy-mm-dd')-->date_format(sysdate(),'%Y-%m-%d'); to_date(sysdate,'yyyy-mm-dd')-->STR_TO_DATE(sysdate(),'%Y-%m-%d'); MysqL: select DATE_FORMAT(STR_TO_DATE(20010101,'%Y%m%d'),'%Y%m') from dual SELECT DATE_FORMAT(STR_TO_DATE(201212,'%Y-%m-%d %H:%i:%s') from DUAL oracle: select to_char(to_date(20010101,'yyyy-mm-dd'),'yyyymm') from dual oracle中的to_number和MysqL中的哪个函数功能是一样或者差不多的? 用cast就可,但要填适当的类型,示例: select cast(11 as unsigned int) /*整型*/ select cast(11 as decimal(10,2)) /*浮点型*/ 把字符串转为日期格式 SELECT DATE_FORMAT('2011-09-20 08:30:45','%Y-%m-%d %H:%i:%S'); 把日期转为字符串格式 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S'); LPAD(str,len,padstr) 返回字符串str,左填充len个字符的长度的字符串padstr。如果str的长度大于len,则返回值被缩短至len个字符。 sql> SELECT LPAD('hi',4,'??'); +---------------------------------------------------------+ | LPAD('hi','??') | +---------------------------------------------------------+ | ??hi | +---------------------------------------------------------+ 1 row in set (0.00 sec) 3 sysdate 换成sysdate() 4 游标与声明必须放在begin后面 sql 语句中的 (+) 是什么意思? 在select语句中(+)指的是外连接,是连接查询的一种方法。 例:select t1.*,t2.* from dept t1,emp t2 where t1.deptno=t2.deptno(+); 其中:t1.deptno=t2.deptno(+)代表意思是,即使t2(emp表)中不存在匹配的记录,在t1(dept表)也查询出来。 (+)就是连接 譬如 SELECT a.*,b.* from a(+) = b就是一个右连接,等同于select a.*,b.* from a right join b SELECT a.*,b.* from a = b(+)就是一个左连接,等同于select a.*,b.* from a left join b ":="是赋值语句 如: l_name :='sky';... "=" 是判断是否相等. 如: if 1=1 then... ":" 是变量绑定 如: if :P_NAME ='sky' then... 服务器与客户端都需要安装 安装以后 需要 把服务器的两个文件拷贝过去 ora什么的 2-- 创建用户 CREATE USER username identified BY password; -- DBA用户授权 -- DBA: DBA是系统的最高权限,拥有全部特权,只有DBA才可以创建数据库结构。 -- RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 -- CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建数据库结构,不可以创建实体。 grant connect,resource,dba to username; 3 oracle dos登录 sqlplus scott/tiger@jiuhua dos查看字符集 select userenv('language') from dual; 4 oracle 根据久华的oracle下载文档进行装配服务器与客户端 5需要将oracle服务期端的两个重要文件 拷贝到客户端端 ora listenner 6 在plsql中的tools中 需要 将D:\soft\cilent\product\11.2.0\client_1 和D:\soft\cilent\product\11.2.0\client_1\bin\oci.dll 配置进去 注意是客户端的 之后就可以了 7 查看表的数量select count(*) from user_tables; 启动监听 启动监听:lsnrctl start 8 普通用户 以dba的权限登录 sqlplus scott/tiger as sysdba 9 导入数据 imp zc/zc@jiuhua file=d:/zc_20170213.dmp full=y;(字符集社这什么的) 10 下午总结一下oracle (确实左括号的原因是程序写的有问题,语法没错 ,逻辑有错;存储过程无法把自己的字段改成自己没有的字段类型 例如无法把varchar(200)改成text在plsql中 ) VARCHAR2 VARCHAR2 INTEGER decimal(65,30) number(10) decimal(10)等价替换 number decimal(65,30) LONG longtext 11 sql 语句的执行顺序 from->table->join->on->where-group by->having>select 问题 1 导入的表 都没有索引 2 表名带日期是干什么的 不用导(存储过程生成的 历史数据测试用的都可以不导 ,主键每个表必须有(有) ,索引只改zc开头 的就行) MysqL 创建索引(注意没有单引号) ALTER TABLE `ZC_LSKPXX` ADD INDEX ZC_LSKPXX_ZT(zt); 转账 10 执行 一个函数 select GET_LASTBMBH('000215') from dual 11 MysqL 将两个查询到的结果拼在一起 两个完整的sql语句之间加上 union 11 查询表有多少张 select * from user_tables 查询有多少个视图 select view_name from user_views

猜你在找的Oracle相关文章