1.Navicat 连接Oracle 报错:

解决办法:

1).先下载oracle客户端,win64_11gR2_client.zip,下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

2).下载之后打开navicat,选择工具->选项->其他->OCI 的OCI Library(oci.dll)*:选择指定的路径:C:\app\test\product\11.2.0\client_1\oci.dll。如图:

2、oracle安装之后,创建用户名和权限

create user 用户名 identified by "密码";
授权:grant create session to 用户名;
grant create table to 用户名;
grant create tablespace to 用户名;
grant create view to 用户名;

3、序列处理

--select HR_TABLE_PERSONID.nextval from dual;
--select *from dba_sequences where sequence_owner='TestRecord' AND SEQUENCE_NAME IN('Test_DEVICEUSER_ID','TEST_PROJECT_PROJECTID');

4、oracle不足位数补零

Oracle 函数中有不足位数补空格的函数 
LPAD和RPAD分别是左补位和右补位 
repalce(lpad(字段名,共几位),‘ ’,‘0’) 
如运行 
select replace(lpad('123',5),' ','0') from dual 
结果是00123 
即补足五位

select lpad('123',5,'0') from dual 这样也可以
5、创建表
-- 流水号信息表
CREATE TABLE Test_SERIALNUMBER
(
"ID" Number(10) primary key,
"NAME" VARCHAR2(100),
BILLMARK VARCHAR2(100),
ENTITY VARCHAR2(100),
"YEAR" VARCHAR2(100),
"MONTH" VARCHAR2(100),
"DAY" VARCHAR2(100),
PLACES INT,
MAXCODE Number(15),
NVersion timestamp
)
LOGGING
NOCOMPRESS
NOCACHE; -- 添加表注释
COMMENT ON TABLE Test_SERIALNUMBER IS '流水号信息表'; -- 添加字段注释
COMMENT ON COLUMN Test_SERIALNUMBER.ID IS '主键ID';
COMMENT ON COLUMN Test_SERIALNUMBER.NAME IS '名称';
COMMENT ON COLUMN Test_SERIALNUMBER.ENTITY IS '实体名称';
COMMENT ON COLUMN Test_SERIALNUMBER.BILLMARK IS '标记';
COMMENT ON COLUMN Test_SERIALNUMBER.YEAR IS '年';
COMMENT ON COLUMN Test_SERIALNUMBER.MONTH IS '月';
COMMENT ON COLUMN Test_SERIALNUMBER.DAY IS '日';
COMMENT ON COLUMN Test_SERIALNUMBER.PLACES IS '位数';
COMMENT ON COLUMN Test_SERIALNUMBER.MAXCODE IS '流水号';
COMMENT ON COLUMN Test_SERIALNUMBER.NVersion IS '版本号'; -- 插入一个数据
INSERT INTO Test_SERIALNUMBER("ID","NAME",BILLMARK,ENTITY,"YEAR","MONTH","DAY",PLACES,MAXCODE,NVersion) values(1,'个人信息','KM','Test_PERSONINFO','','','',9,'',to_timestamp(sysdate,'yyyy-mm-dd hh24:mi:ss.ff'));

6.存储过程

/*--------------------------------------------------------------------------------------------------------
获取最大流水号
vEntity -- 实体名称(表名)
vbillCode -- 返回流水号
--------------------------------------------------------------------------------------------------------*/
CREATE OR REPLACE PROCEDURE UP_GETMAXCODE(vEntity IN VARCHAR,vbillCode out VARCHAR)
AS
BEGIN DECLARE vMaxCode VARCHAR(20);
vNVersion timestamp;
vTimes INT; BEGIN SELECT (MAXCODE+1),NVersion INTO vMaxCode,vNVersion
FROM HR_SERIIALNUMBER
WHERE ENTITY=vEntity; UPDATE HR_SERIIALNUMBER SET MAXCODE=MAXCODE+1
WHERE ENTITY=vEntity
AND NVersion=vNVersion; WHILE sql%rowcount=0 LOOP
BEGIN
vTimes:=vTimes+1;
IF MOD(vTimes,100) = 0 THEN
BEGIN
--等待1秒
--dbms_lock.sleep(1);
IF vTimes>500 THEN
BEGIN
RETURN;
END;
END IF;
END;
END IF; SELECT (MAXCODE+1),NVersion INTO vMaxCode,vNVersion
FROM HR_SERIIALNUMBER
WHERE ENTITY=vEntity; UPDATE HR_SERIIALNUMBER SET MAXCODE=MAXCODE+1
WHERE ENTITY=vEntity
AND NVersion=vNVersion; END;
END LOOP; SELECT (NVL(BILLMARK,'')||NVL("YEAR",'')||NVL("MONTH",'')||NVL("DAY",'')|| SUBSTR(to_char(vMaxCode),-PLACES,PLACES)) INTO vbillCode
FROM HR_SERIIALNUMBER
WHERE ENTITY=vEntity; END;
END;

7.游标循环批量修改某个字段的值

declare
cursor test_personno_cur
is select personid,personno,case to_char(createdate,'yyyymmdd') when '' then to_char(updatedate,'yyyymmdd') else to_char(createdate,'yyyymmdd') end createdate from test_test order by personid asc for update;
vCode varchar(20):='00';
begin
for test_row in test_personno_cur
loop
vCode := to_number(vCode) + 1;
--dbms_output.put_line('vCode:'||vCode);
vCode := lpad(vCode,11,'');
--dbms_output.put_line('vCode:'||vCode);
update test_test set personno= (case to_char(createdate,'yyyymmdd') when '' then to_char(updatedate,'yyyymmdd') else to_char(createdate,'yyyymmdd') end || vCode) where current of test_personno_cur;
end loop;
commit;
end;

8.错误:找不到请求的 .Net Framework Data Provider。可能没有安装. (The ADO.NET provider with invariant name 'Oracle.ManagedDataAccess.Client' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details.)

1). C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config的 <system.data>-><DbProviderFactories>下添加

<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<add name="ODP.NET, Unmanaged Driver" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET, Unmanaged Driver" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

2).在web.config里面添加:

<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client"/>
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>

参考:http://www.cnblogs.com/gudi/p/6110875.html

9.如何配置pl/sql 连接远程oracle服务器

前提是电脑必须安装oracle客户端。

配置方法:

1).找到oracle的安装目录。如:C:\oracle\product\10.2.0\db_1\network\ADMIN

2).找到tnsnames.ora文件。

3).用文本方式打开,添加以下内容:

1
2
3
4
5
6
7
8
本地实例名 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 远程数据库IP地址)(PORT = 远程服务器端口号))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = 远程数据库服务名)
    )
  )

其中中文部分是需要修改的部分,除第一个“本地实例名”外,其他需要跟远程数据库管理员咨询,本地实例名就是方便自己识别数据库的一个名字,可以自定义。

4).然后打开pl/sql就能看到自己创建的链接,如图:

10.利用plsql 客户端,执行脚本需要commit;

11.查看当前库中表的个数:

Oracle: select count(*) from user_tables

SqlServer: SELECT count(*) FROM sysobjects WHERE (xtype = 'U'),

MySQL:SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES  WHERE table_schema = 'ctms_demo'

12.查看oracle索引:

select *from dba_sequences where sequence_owner='' and sequence_name like '%see%';

13.oracle 命令导出数据库

exp test/ABC23@Orcl  owner=testfile=d:\2018.dmp log=d:\test.txt  STATISTICS=none

14.Oracle序列

1).oracle创建序列(SqlServer:IDENTITY(1,1) 和Mysql可以自增长)

CREATE SEQUENCE HR_TEST_TESTID
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
CACHE 500;

---调用

select HR_TEST_TESTID.nextval from dual

2).查找所有的序列

select * from user_sequences;

15.通过命令导出oracle 数据库(.dmp文件),也可以通过oracle客户端PLSQL Developer导出

命令连接oracle 客户端的配置文件:tnsping orcl 如下图

cd C:\app\Ham\product\11.2.\dbhome_1\BIN

sqlplus Test/test@orcl

exit

exp Test/test@orcl  owner=testr file=d:\data\data2017.dmp log=d:\data\test.txt  STATISTICS=none

如下图:

16.EFProfiler 查看和跟踪EF生成的Oracle脚本

1).下载EFProfiler https://hibernatingrhinos.com/products/EFProf  本次用的是EntityFramework.Profiler-v4.0-Build-4041

2).注册申请证书  https://hibernatingrhinos.com/products/EFProf/buy

打开EFProf.exe,把.xml的证书导入,然后

a.引用dll,HibernatingRhinos.Profiler.Appender.dll

b.Global Application_Start  添加 HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

本次是webAPI程序,在Global.asax.cs 的    Application_Start 方法里面加入HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

c.启动EFProf.exe 程序

参考:http://blog.csdn.net/gavin_luo/article/details/42457509

17.oracle 转sqlserver 总结

1).可以通过navicat 的工具->数据传输,可以转表结构和数据。然后受到修改相关字段和存储过程,视图等,这个方法碰到大数据会报错。如图:

2).可以通过SSMA for Oracle  参考: 1. http://www.codes51.com/article/detail_122407.html  2.http://blog.csdn.net/zheng_dian/article/details/7562489

18.Oracle 数据库中区分大小写,建议全部使用大写,如果有有表名都有大小写,查询的时候需要加上"",全部大写或全部小写,会报错:ORA-00942: 表或视图不存在

19.Oracle可以用rownum 相当于sqlserver 的top

select rownum,t.* from hr_test t where rownum > 0 order by rownum asc;

20.经常用到的oracle Sql 脚本

//查看死锁
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID; CREATE TABLESPACE HealTest LOGGING DATAFILE 'D:\app\oracl\oradata\orcl\HealTest.dbf'
SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL; create temporary tablespace HealTest_TEMP tempfile 'D:\app\oracl\oradata\orcl\HealTest_TEMP.dbf'
size 100m autoextend on next 32m maxsize 500m extent management local; CREATE USER HealTest IDENTIFIED BY HealTest DEFAULT TABLESPACE HealTest TEMPORARY TABLESPACE HealTest_TEMP; drop user HealTest cascade; grant connect,resource,dba to HealTest;
grant create session to HealTest;

22.oralce 表添加字段

ALTER TABLE TEST ADD(NAME VARCHAR2(30),TESTID VARCHAR2(200));

23.创建数据库相关的脚本

imp healthtest/healthtest  file=D:/healthtestDB/HRDB201703231950.dmp  fromuser=healthtest touser=healthtestBAK ignore=y log=D:\test.txt
exp healthtest/healthtest@orcl owner=healthtest file=d:\healthtest.dmp log=d:\healthtest.txt STATISTICS=none 1.create tablespace healthtest_tabspace datafile 'c:\OrclDB\healthtest_data.dbf' size 500M autoextend on next 5M;
2.create user healthtest identified by healthtest default tablespace healthtest_tabspace;
3.grant connect,resource,dba to healthtest;
4.ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --删除表名称空间
--DROP TABLESPACE healthtest_tabspace INCLUDING CONTENTS AND DATAFILES;

24.

  alter system set db_recovery_file_dest_size=3G scope=both;  

Oracle 相关知识的更多相关文章

  1. Oracle相关知识做个总结

    一.创建用户: 以系统管理员登陆,右键点击Uers进行新建, 一般:默认空间选择USERS,临时表空间选择TEMP,概要文件选择DEFAULT. 对象权限:不做操作. 角色权限:1.connect 2 ...

  2. 数据库相关知识积累(sqlserver、oracle、mysql)

    数据库相关知识积累(sqlserver.oracle.mysql) 1. sqlserver :断开所有连接: (还原数据库) 1.数据库  分离 2. USE master GO ALTER DAT ...

  3. Oracle 基础知识入门

    前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...

  4. Oracle常用知识小总结

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ...

  5. [Oracle入门级]知识概况

    oracle各个版本间的主要技术更新 oracle 增加数据库创建和存储对象 oracle 8i 整体性能提升 oracle9i 实施应用集群 oracle 10g 支持网格计算 oracle 11g ...

  6. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  7. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  8. 移动WEB像素相关知识

    了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...

  9. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

随机推荐

  1. python基础学习之文件操作&函数

    1.文件处理相关 1.编码问题 ①python2与python3中的默认编码: py2默认使用ASCII码,py3默认使用utf-8 ②为什么会出现中文乱码,中文乱码的情况有哪些? #sys.stdo ...

  2. Qt终结者之粒子系统

    前言 粒子系统用于模拟一些特定的模糊效果,如爆炸.烟火.雪花.水流等.使用传统的渲染技术实现粒子效果比较困难,但是使用QML粒子系统能十分方便的实现各种粒子效果,使你的界面更加炫酷,动感. QML中的 ...

  3. Neural Network Programming - Deep Learning with PyTorch - YouTube

    百度云链接: 链接:https://pan.baidu.com/s/1xU-CxXGCvV6o5Sksryj3fA 提取码:gawn

  4. css尺寸(大小)属性

    尺寸属性:用来控制元素大小的属性,单位为长度单位. 尺寸属性的使用场景 当使用相对长度单位定义尺寸时,元素的大小跟随窗口大小变化. 为保证元素的正常显示,需要设定元素的最大.最小长度. 手机端开发时需 ...

  5. 手动清除mac的广告弹框病毒 MacOSDefender

    最近在浏览亚马逊, 京东的时候, 发现会自动弹出很多广告到浏览器, 其实是中了病毒MacOSDefender. 这个病毒非常烦人, 会在你浏览电商网页的时候拼命的打开广告页面, 而且还会弹出一些提示, ...

  6. 安装vmware tools问题

    我爱破解的xp虚拟机,之前没有装vmware tools,用起来非常不方便.因此,决定安装,但安装时出现了一些问题,特此记录: * 点击虚拟机的安装VMWARE TOOLS ,出现错误提示: 虚拟机需 ...

  7. VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法

    VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法 今天在单位电脑安装VS2008,当安装到“Visual Studio Web 创作组件”时出现错误. 准备手动安装 ...

  8. Dictionary用法

    https://www.cgjoy.com/thread-106639-1-1.html 1.新建字典,添加元素  dictionary<string,string>dic=newdict ...

  9. sublime新建工程文件夹

    点击project,选择add folder to project,显示如图 点击选择以后跳转至你存放sublime的文件的workspace中,需要提前在workspace中新建文件夹,点击add ...

  10. Tomcat服务器安装及配置

    一.JDK环境安装 1.tomcat服务器需要在已安装JDK的环境下才能正确安装并运行,首先到Java官网下载jdk 先同意协议,再下载对应的版本(我的系统是Windows10 64位) 2.下载完成 ...