精华内容
下载资源
问答
  • Oracle语言

    千次阅读 2008-07-29 21:13:00
    一、Oracle语言 Oracle 数据库系统使用经验 1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制 ,having 子句条件中只允许涉及常量 , 聚组函数或 group by 子句中的列 . 2. 外部联接 "+" 的...

     一、Oracle语言

           Oracle 数据库系统使用经验
           1.having 子句的用法

     having 子句对 group by 子句所确定的行组进行控制 ,having 子句条件中只允许涉及常量 , 聚组函数或 group by 子句中的列 .

    2. 外部联接 "+" 的用法

    外部联接 "+" 按其在 "=" 的左边或右边分左联接和右联接 . 若不带 "+" 运算符的表中的一个行不直接匹配于带 "+" 预算符的表中的任何行 , 则前者的行与后者中的一个空行相匹配并被返回 . 若二者均不带 '+', 则二者中无法匹配的均被返回 . 利用外部联接 "+", 可以替代效率十分低下的 not in 运算 , 大大提高运行速度 . 例如 , 下面这条命令执行起来很慢

    select a.empno from emp a where a.empno not in

    (select empno from emp1 where job='SALE');

    倘若利用外部联接 , 改写命令如下 :

    select a.empno from emp a ,emp1 b

    where a.empno=b.empno(+)

    and b.empno is null

    and b.job='SALE';

    可以发现 , 运行速度明显提高 .

    3. 删除表内重复记录的方法

    可以利用这样的命令来删除表内重复记录 :

    delete from table_name a

    where rowid< (select max(rowid) from table_name

    where column1=a.column1 and column2=a.column2

    and colum3=a.colum3 and ...);

    4.set transaction 命令的用法

    在执行大事务时 , 有时 oracle 会报出如下的错误 :

    ORA-01555:snapshot too old (rollback segment too small)

    这说明 oracle 给此事务随机分配的回滚段太小了 , 这时可以为它指定一个足够大的回滚段 , 以确保这个事务的成功执行 . 例如

    set transaction use rollback segment roll_abc;

    delete from table_name where ...

    commit;

    回滚段 roll_abc 被指定给这个 delete 事务 ,commit 命令则在事务结束之后取消了回滚段的指定 .

    5. 使用索引的注意事项

    select,update,delete 语句中的子查询应当有规律地查找少于 20% 的表行 . 如果一个语句查找的行数超过总行数的 20%, 它将不能通过使用索引获得性能上的提高 .

    索引可能产生碎片 , 因为记录从表中删除时 , 相应也从表的索引中删除 . 表释放的空间可以再用 , 而索引释放的空间却不能再用 . 频繁进行删除操作的被索引的表 , 应当阶段性地重建索引 , 以避免在索引中造成空间碎片 , 影响性能 . 在许可的条件下 , 也可以阶段性地 truncate 表 ,truncate 命令删除表中所有记录 , 也删除索引碎片 .

     6. 数据库重建应注意的问题

    在利用 import 进行数据库重建过程中 , 有些视图可能会带来问题 , 因为结构输入的顺序可能造成视图的输入先于它低层次表的输入 , 这样建立视图就会失败 . 要解决这一问题 , 可采取分两步走的方法 : 首先输入结构 , 然后输入数据 . 命令举例如下 (uesrname:jfcl,password:hfjf,host sting:ora1, 数据文件 :expdata.dmp):

    imp jfcl/hfjf@ora1 file=empdata.dmp rows=N

    imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000

    commit=Y ignore=Y

    第一条命令输入所有数据库结构 , 但无记录 . 第二次输入结构和数据 ,64000 字节提交一次 .ignore=Y 选项保证第二次输入既使对象存在的情况下也能成功 .

     

    Oracle数据库的参数绑定性能实践

    从Oracle的SGA的构成来看,它是推崇使用参数绑定的。使用参数绑定可以有效的使用Share Pool,对已经缓存的SQL不用再硬解析,能明显的提高性能。

    具体实践如下:

    SQL>create table test (a number(10));< 

    再创建一个存储过程:

    create or replace procedure p_test is
      i number(10);
    begin
      i := 0;
       while i <= 100000 loop
        execute immediate ' insert into test values (' || to_char(i) || ')';
        i := i + 1;
      end loop;
    
      commit;
    
    end p_test; 

    先测试没有使用参数绑定的:

    运行 p_test 后,用时91.111秒。

    再创建一个使用参数绑定的:

    create or replace procedure p_test is
      i number(10);
    begin
      i := 0;
      while i <= 100000 loop
        execute immediate ' insert into test values (:a)'
          using i;
        i := i + 1;
      end loop;
      commit;
    
    end p_test; 

    运行 p_test 后,用时55.099秒。

    从上面的运行时间可以看出,两者性相差 39.525%,可见,用不用参数绑定在性能上相差是比较大的。

     

    Oracle PL/SQL语言入门

    一、背景介绍
    结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。显然,这种不关注任何实现细节的语言对于开发者来说有着极大的便利。然而,有些复杂的业务流程要求相应的程序来描述,这种情况下4GL就有些无能为力了。PL/SQL的出现正是为了解决这一问题,PL/SQL是一种过程化语言,属于第三代语言,它与C、 C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。本文主要介绍PL/SQL的编程基础,以使入门者对PL/SQL语言有一个总体认识和基本把握。
    二、编程基础知识
    1. 程序结构
    PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。如下所示为一段完整的PL/SQL块:

         
          /*声明部分,以declare开头*/
    declare v_id integer;
    v_name varchar(20);
    cursor c_emp is select * from employee where emp_id=3; 
    /*执行部分,以begin开头*/
    begin  open c_emp; //打开游标 
    loop
    fetch c_emp into v_id,v_name;      //从游标取数据
    exit when c_emp%notfound ; 
    end loop ;
    close c_emp;               //关闭游标
    dbms_output.PUT_LINE(v_name); 
    /*异常处理部分,以exception开始*/
    exception
    when no_data_found then
    dbms_output.PUT_LINE('没有数据');
    end ;
         

    2. 控制结构
    PL/SQL程序段中有三种程序结构:条件结构、循环结构和顺序结构。
    1) 条件结构
    与其它语言完全类似,语法结构如下:
         
          if condition then
    statement1
    else
    statement2
    end if ;
         

    2) 循环结构
    这一结构与其他语言不太一样,在PL/SQL程序中有三种循环结构:
         
          a. loop … end loop;
    b. while condition loop … end loop;
    c. for variable in low_bound . . upper_bound loop … end loop;
         

    其中的“…”代表循环体。
    3) 顺序结构
    实际就是goto的运用,不过从程序控制的角度来看,尽量少用goto可以使得程序结构更加的清晰。
    3. 变量声明与赋值
    PL/SQL主要用于数据库编程,所以其所有的数据类型跟Oracle数据库里的字段类型是一一对应的,大体分为数字型、布尔型、字符型和日期型。这里简单介绍两种常用数据类型:number、varchar2。
    number
    用来存储整数和浮点数。范围为1e130~10e125,其使用语法为:
    number[(precision, scale)]
    其中(precision, scale)是可选的,precision表示所有数字的个数,scale表示小数点右边数字的个数。
    varchar2
    用来存储变长的字符串,其使用语法为:
    varchar2[(size)]
    其中size为可选,表示该字符串所能存储的最大长度。
    在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型的变量v_id,那其形式应为:
    v_id number;
    如果给上面的v_id变量赋值,不能用“=”,应该用“:=”,即形式为:
    v_id :=5;
    4. SQL基本命令
    PL/SQL使用的数据库操作语言还是基于SQL的,所以熟悉SQL是进行PL/SQL编程的基础。SQL语言的分类情况大致如下:
    1) 数据定义语言(DDL):Create,Drop,Grant,Revoke,…
    2) 数据操纵语言(DML):Update,Insert,Delete,…
    3) 数据控制语言(DCL):Commit,Rollback,Savapoint,…
    4) 其他:Alter System,Connect,Allocate, …
    具体的语法结构可以参阅其他关于SQL语言的资料,这里不再赘述。
    三、过程与函数
    PL/SQL中的过程和函数与其他语言的过程和函数一样,都是为了执行一定的任务而组合在一起的语句。过程无返回值,函数有返回值。其语法结构为:
    过程:Create or replace procedure procname(参数列表) as PL/SQL语句块
    函数:Create or replace function funcname(参数列表) return 返回值 as PL/SQL语句块
    为便于理解,举例如下:
    问题:假设有一张表t1,有f1和f2两个字段,f1为number类型,f2为varchar2类型,要往t1里写两条记录,内容自定。
         
          Create or replace procedure test_procedure as 
    V_f11 number :=1; /*声明变量并赋初值*/
    V_f12 number :=2;
    V_f21 varchar2(20) :='first';
    V_f22 varchar2(20) :='second';
    Begin 
    Insert into t1 values (V_f11, V_f21);
    Insert into t1 values (V_f12, V_f22);
    End test_procedure; /*test_procedure可以省略*/
         

    至此,test_procedure存储过程已经完成,经过编译后就可以在其他PL/SQL块或者过程中调用了。函数与过程具有很大的相似性,此处不再详述。
    四、游标
    游标的定义为:用游标来指代一个DML SQL操作返回的结果集。即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是因为它在PL/SQL的编程中非常的重要。定义游标的语法结构如下:
    cursor cursor_name is SQL语句;
    在本文第一段代码中有一句话如下:
    cursor c_emp is select * from employee where emp_id=3;
    其含义是定义一个游标c_emp,代表employee表中所有emp_id字段为3的结果集。当需要操作该结果集时,必须完成三步:打开游标、使用fetch语句将游标里的数据取出、关闭游标。请参照本文第一段代码的注释理解游标操作的三步骤。
    五、其他概念
    PL/SQL中包的概念很重要,主要是对一组功能相近的过程和函数进行封装,类似于面向对象中的名字空间的概念。
    触发器是一种特殊的存储过程,其调用者比较特殊,是当发生特定的事件才被调用,主要用于多表之间的消息通知。

    Oracle系统表查询

    数据字典dict总是属于Oracle用户sys的。
    1、用户:
     select username from dba_users;
    改口令
     alter user spgroup identified by spgtest;
    2、表空间:
     select * from dba_data_files;
     select * from dba_tablespaces;//表空间
     select tablespace_name,sum(bytes), sum(blocks)
    from dba_free_space group by tablespace_name;//空闲表空间
     select * from dba_data_files
    where tablespace_name='RBS';//表空间对应的数据文件
     select * from dba_segments
    where tablespace_name='INDEXS';
    3、数据库对象:
     select * from dba_objects;
     CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
     PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
    4、表:
     select * from dba_tables;
     analyze my_table compute statistics;->dba_tables后6列
     select extent_id,bytes from dba_extents
     where segment_name='CUSTOMERS' and segment_type='TABLE'
     order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
     列信息:
    select distinct table_name
    from user_tab_columns
    where column_name='SO_TYPE_ID';
    5、索引: 
     select * from dba_indexes;//索引,包括主键索引
     select * from dba_ind_columns;//索引列
     select i.index_name,i.uniqueness,c.column_name
    from user_indexes i,user_ind_columns c
     where i.index_name=c.index_name
     and i.table_name ='ACC_NBR';//联接使用
    6、序列:
     select * from dba_sequences;
    7、视图:
     select * from dba_views;
     select * from all_views;
    text 可用于查询视图生成的脚本
    8、聚簇:
     select * from dba_clusters;
    9、快照:
     select * from dba_snapshots;
    快照、分区应存在相应的表空间。
    10、同义词:
     select * from dba_synonyms
    where table_owner='SPGROUP';
    //if owner is PUBLIC,then the synonyms is a public synonym.
     if owner is one of users,then the synonyms is a private synonym.
    11、数据库链:
     select * from dba_db_links;
    在spbase下建数据库链
     create database link dbl_spnew
     connect to spnew identified by spnew using 'jhhx';
     insert into acc_nbr@dbl_spnew
     select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
    12、触发器:
     select * from dba_trigers;
    存储过程,函数从dba_objects查找。
    其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
    建立出错:select * from user_errors;
    oracle总是将存储过程,函数等软件放在SYSTEM表空间。
    13、约束:
    (1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。
    可以临时禁止约束,如:
     alter table book_example
     disable constraint book_example_1;
     alter table book_example
     enable constraint book_example_1;
    (2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。
    (3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
     select * from user_constraints
     where table_name='BOOK_EXAMPLE';
     select owner,CONSTRAINT_NAME,TABLE_NAME
    from user_constraints
    where constraint_type='R'
    order by table_name;
    (4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)
    如:create table book_example
    (identifier number not null);
    create table book_example
    (identifier number constranit book_example_1 not null);
    14、回滚段:
    在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。
    回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;
     create rollback segment r05
     tablespace rbs;
     create rollback segment rbs_cvt
     tablespace rbs
     storage(initial 1M next 500k);
    使回滚段在线
     alter rollback segment r04 online;
    用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。
    回滚段的区间信息
     select * from dba_extents
     where segment_type='ROLLBACK' and segment_name='RB1';
    回滚段的段信息,其中bytes显示目前回滚段的字节数
     select * from dba_segments
    where segment_type='ROLLBACK' and segment_name='RB1';
    为事物指定回归段
     set transaction use rollback segment rbs_cvt
    针对bytes可以使用回滚段回缩。
     alter rollback segment rbs_cvt shrink;
     select bytes,extents,max_extents from dba_segments
    where segment_type='ROLLBACK' and segment_name='RBS_CVT';
    回滚段的当前状态信息:
     select * from dba_rollback_segs
    where segment_name='RB1';
    比多回滚段状态status,回滚段所属实例instance_num
    查优化值optimal
     select n.name,s.optsize
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
    回滚段中的数据
     set transaction use rollback segment rb1;/*回滚段名*/
     select n.name,s.writes
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
    当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。
    查询回滚段中的事务
     column rr heading 'RB Segment' format a18
     column us heading 'Username' format a15
     column os heading 'Os User' format a10
     column te heading 'Terminal' format a10
     select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
    from v$lock l,v$session s,v$rollname r
     where l.sid=s.sid(+)
     and trunc(l.id1/65536)=R.USN
     and l.type='TX'
     and l.lmode=6
     order by r.name;
    15、作业
    查询作业信息
     select job,broken,next_date,interval,what from user_jobs;
     select job,broken,next_date,interval,what from dba_jobs;
    查询正在运行的作业
     select * from dba_jobs_running;
    使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟
    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。

    Oracle 9i取得建表和索引DDL语句

    我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到。

    从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候。在Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字典中查处DDL语句。使用这个功能强大的工具,我们可以获得单个对象或整个SCHEMA的DDL语句。最好不过的是因为它使用起来很简单。

    1、获得单个表和索引DDL语句的方法:

    set heading off; 
    set echo off;
    Set pages 999; 
    set long 90000; 
    spool get_single.sql 
    select dbms_metadata.get_ddl("TABLE","SZT_PQSO2","SHQSYS") from dual;
    select dbms_metadata.get_ddl("INDEX","INDXX_PQZJYW","SHQSYS") from dual;
    spool off;

    下面是输出。我们只要把建表/索引语句取出来在后面加个分号就可以直接运行了。

    SQL> select dbms_metadata.get_ddl("TABLE","SZT_PQSO2","SHQSYS") from dual;

    CREATE TABLE "SHQSYS"."SZT_PQSO2" 
    ( "PQBH" VARCHAR2(32) NOT NULL ENABLE,
    "ZJYW" NUMBER(10,0),
    "CGSO" NUMBER(10,0) NOT NULL ENABLE,
    "SOLS" VARCHAR2(17),
    "SORQ" VARCHAR2(8),
    "SOWR" VARCHAR2(8),
    "SOCL" VARCHAR2(6),
    "YWHM" VARCHAR2(10),
    "YWLX" VARCHAR2(6)
    )
    PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "DATA1"

    SQL> select dbms_metadata.get_ddl("INDEX","INDXX_PQZJYW","SHQSYS") from dual;

    CREATE INDEX "SHQSYS"."INDXX_PQZJYW" ON "SHQSYS"."SZT_PQSO2" ("ZJYW")
    PCTFREE 10 INITRANS 2 MAXTRANS 255
    STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) 
    TABLESPACE "DATA1"

    SQL> 
    SQL> spool off;

    2、获得整个SCHEMA DDL语句的方法:

    set pagesize 0
    set long 90000
    set feedback off
    set echo off
    spool get_schema.sql
    connect shqsys/shqsys@hawk1;
    SELECT DBMS_METADATA.GET_DDL("TABLE",u.table_name)
    FROM USER_TABLES u; 
    SELECT DBMS_METADATA.GET_DDL("INDEX",u.index_name)
    FROM USER_INDEXES u; 
    spool off;

    需要注意的是,当我们的表中有外健(参照约束)时,我们需要判别参照表之间的顺序,确保重建时按照合理的顺序进行。你可以通过查询dba_constraints and dba_cons_columns来确定各表之间的顺序,不再详述。

     

    二、PL/SQL工具的使用
           PL/SQL Developer是一种集成的开发环境,专门用于开发、测试、调试和优化Oracle PL/SQL存储程序单元,比如触发器等。PL/SQL Developer功能十分全面,大大缩短了程序员的开发周期。强大的PL/SQL编辑器,完善的Debugger调试器(需要Oracle 7.3.4或以上版本)询问创建/SQL视窗/命令视窗/报告视窗/项目/浏览器/过程优化/HTML手册/Non-PL/SQL目标/模板目录/比较用户目标/输出用户目标/工具/lug-In扩展/Multi-threaded IDE/简单的安装(本软件由allroundautomations中国区总代理www.softwarecn.com 授权发布。)。 <script language=javascript src="/newhuagg/js_ad_show_8.js"></script>
           下载地址:http://www.onlinedown.net/soft/4902.htm

    展开全文
  • 明白ORACLE的多国语言设置

    千次阅读 2007-10-26 11:55:00
    http://book.77169.org/data/web6102/20050228/20050228__3620450.htmlwlgyhnj(冷风0)明白ORACLE的多国语言设置ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言...ORACLE的多国语言设置最主要的两个

     http://book.77169.org/data/web6102/20050228/20050228__3620450.html

    wlgyhnj(冷风0)


    明白ORACLE的多国语言设置,ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字段的数据的显示等有效。ORACLE的多国语言设置最主要的两个特性就是国家语言设置与字符集设置,国家语言设置决定了界面或提示使用的语言种类,字符集决定了数据库保存与字符集有关数据(如文本)时候的编码规则。正如刚才上面的一个小例子,环境变量NLS_LANG的不同,导致EXP帮助发生变化,这就是多国语言设置的作用(NLS_LANG包含国家语言设置与字符集设置,这里起作用的是国家语言设置,而不是字符集)。
    ORACLE字符集设定,分为数据库字符集和客户端字符集环境设置。在数据库端,字符集在创建数据库的时候设定,并保存在数据库props$表中,对于8i以上产品,已经可以采用“Alter database character set 字符集”来修改数据库的字符集,但也仅仅是从子集到超集,不要通过update props$来修改字符集,如果是不支持的转换,可能会失去所有与字符集有关的数据,就是支持的转换,也可能导致数据库的不正常工作。字符集分为单字节字符集与多字节字符集,US7ASCII就是典型的单字节字符集,在这种字符集中length=lengthb,而ZHS16GBK就是常用的双字节字符集,在这里lengthb=2*length。
    在客户端的字符集环境比较简单,主要就是环境变量或注册表项NLS_LANG,注意NLS_LANG的优先级别为:参数文件à注册表à环境变量àalter session。NLS_LANG的组成为“国家语言设置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。客户端的字符集最好与数据库端一样(国家语言设置可以不一样,如zhs16gbk的字符集,客户端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示),如果字符集不一样,而且字符集的转换也不兼容,那么客户端的数据显示与导出/导入的与字符集有关的数据将都是乱码。
    使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里需要一个2进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp文件,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:
    SQL> select nls_charset_name(1) from dual;
    NLS_CHARSET_NAME(1)
    -------------------
    US7ASCII
    可以知道该dmp文件的字符集为US7ASCII,如果需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号:
    SQL> select nls_charset_id('zhs16gbk') from dual;
    NLS_CHARSET_ID('ZHS16GBK')
    --------------------------
    852
    把852换成16进制数,为354,把2、3字节的00 01换成03 54,即完成了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了。(注意,十进制数与十六进制之间的转换,想明白其中的道理)
    4.1.4 跨版本使用Exp/Imp
    Exp/Imp很多时候,可以跨版本使用,如在版本7与版本8之间导出导入数据,但这样做必须选择正确的版本,规则为:
    ·总是使用IMP的版本匹配数据库的版本,如果要导入到816,则使用816的导入工具。
    ·总是使用EXP的版本匹配两个数据库中低的那个版本,如在815与816之间互导,则使用815的EXP工具。


    我用这个方法,成功解决从815版本的american_america.us7ascii到ORACLE9i版本的SIMILIFILD CHINESE_CHINA.ZHS16GBK的转换,并且用EXP和IMP都不出问题。

    你可以参考一下。

    展开全文
  • Oracle语言和字符集设置

    千次阅读 2013-07-26 14:02:57
    ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。   影响Oracle数据库字符集最重要的...

    转自:http://blog.csdn.net/tianlesoftware/article/details/4915223




    一、什么是Oracle字符集

           Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。

     

    影响Oracle数据库字符集最重要的参数是NLS_LANG参数。

    它的格式如下: NLS_LANG = language_territory.charset

    它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。

    其中:

    Language 指定服务器消息的语言, 影响提示信息是中文还是英文

    Territory 指定服务器的日期和数字格式,

    Charset  指定字符集。

    如:AMERICAN _ AMERICA. ZHS16GBK

    从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分

    所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文

     

    二.字符集的相关知识:

    2.1 字符集
        实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。
        Oracle的字符集命名遵循以下命名规则:
        <Language><bit size><encoding>
        即: <语言><比特位数><编码>
        比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
     
    2.2 字符编码方案


    2.2.1单字节编码
        (1)单字节7位字符集,可以定义128个字符,最常用的字符集为US7ASCII
        (2)单字节8位字符集,可以定义256个字符,适合于欧洲大部分国家
                 例如:WE8ISO8859P1(西欧、8位、ISO标准8859P1编码)

     

    2.2.2多字节编码
        1)变长多字节编码
        某些字符用一个字节表示,其它字符用两个或多个字符表示,变长多字节编码常用于对亚洲语言的支持,   例如日语、汉语、印地语等
        例如:AL32UTF8(其中AL代表ALL,指适用于所有语言)、zhs16cgb231280
        2)定长多字节编码
        每一个字符都使用固定长度字节的编码方案,目前oracle唯一支持的定长多字节编码是AF16UTF16,也是仅用于国家字符集

    2.2.3 unicode编码
        Unicode是一个涵盖了目前全世界使用的所有已知字符的单一编码方案,也就是说Unicode为每一个字符提供唯一的编码。UTF-16unicode16位编码方式,是一种定长多字节编码,用2个字节表示一个unicode字符,AF16UTF16UTF-16编码字符集
        UTF-8unicode8位编码方式,是一种变长多字节编码,这种编码可以用1、2、3个字节表示一个unicode字符,AL32UTF8,UTF8、UTFE是UTF-8编码字符集
     
    2.3 字符集超级
        当一种字符集(字符集A)的编码数值包含所有另一种字符集(字符集B)的编码数值,并且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级,或称字符集B是字符集A的子集。
        Oracle8i和oracle9i官方文档资料中备有子集-超级对照表(subset-superset pairs,例如:WE8ISO8859P1是WE8MSWIN1252的子集。由于US7ASCII是最早的Oracle数据库编码格式,因此有许多字符集是US7ASCII的超集,例如WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK都是US7ASCII的超集。
     
    2.4 数据库字符集(oracle服务器端字符集)
        数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。

     

    2.4.1字符集
        (1)用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据
        (2)用来标示诸如表名、列名以及PL/SQL变量等
        (3)用来存储SQL和PL/SQL程序单元等

     

    2.4.2国家字符集:
        (1)用以存储NCHAR, NVARCHAR2, NCLOB等类型数据
        (2)国家字符集实质上是为oracle选择的附加字符集,主要作用是为了增强oracle的字符处理能力,因为NCHAR数据类型可以提供对亚洲使用定长多字节编码的支持,而数据库字符集则不能。国家字符集在oracle9i中进行了重新定义,只能在unicode编码中的AF16UTF16UTF8中选择,默认值是AF16UTF16

     

    2.4.3查询字符集参数
        可以查询以下数据字典或视图查看字符集设置情况
        nls_database_parameters、props$、v$nls_parameters
        查询结果中NLS_CHARACTERSET表示字符集NLS_NCHAR_CHARACTERSET表示国家字符集

     

    2.4.4修改数据库字符集
        按照上文所说,数据库字符集在创建后原则上不能更改。不过有2种方法可行。

     

    1. 如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换

    2. 通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER DATABASE CHARACTER SET UTF8。
     
    2.5 客户端字符集(NLS_LANG参数)


    2.5.1客户端字符集含义
        客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用,例如sqlplus,exp/imp等。客户端字符集是通过设置NLS_LANG参数来设定的。

     

    2.5.2 NLS_LANG参数格式
        NLS_LANG=<language>_<territory>.<client character set>
        Language: 显示oracle消息,校验,日期命名
        Territory指定默认日期、数字、货币等格式
        Client character set指定客户端将使用的字符集
        例如:NLS_LANG=AMERICAN_AMERICA.US7ASCII
        AMERICAN是语言,AMERICA是地区,US7ASCII是客户端字符集

     

    2.5.3客户端字符集设置方法
         1)UNIX环境
             $NLS_LANG=“simplified chinese”_china.zhs16gbk
             $export NLS_LANG
             编辑oracle用户的profile文件
        2)Windows环境
             编辑注册表
             Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE--》HOME

     

    2.5.4 NLS参数查询
        Oracle提供若干NLS参数定制数据库和用户机以适应本地格式,例如有NLS_LANGUAGE,NLS_DATE_FORMAT,NLS_CALENDER等,可以通过查询以下数据字典或v$视图查看。
    NLS_DATABASE_PARAMETERS:显示数据库当前NLS参数取值,包括数据库字符集取值
    NLS_SESSION_PARAMETERS  显示由NLS_LANG 设置的参数,或经过alter session 改变后的参数值(不包括由NLS_LANG 设置的客户端字符集)
    NLS_INSTANCE_PARAMETE 显示由参数文件init<SID>.ora 定义的参数

    V$NLS_PARAMETERS显示数据库当前NLS参数取值

     

    2.5.5修改NLS参数
        使用下列方法可以修改NLS参数
        (1)修改实例启动时使用的初始化参数文件
        (2)修改环境变量NLS_LANG
        (3)使用ALTER SESSION语句,在oracle会话中修改
        (4)使用某些SQL函数
        NLS作用优先级别:Sql function > alter session > 环境变量或注册表 > 参数文件 > 数据库默认参数

     

    三.EXP/IMP 字符集

    3.1 EXP/IMP
        Export 和 Import 是一对读写Oracle数据的工具。Export 将 Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中,由于使用exp/imp进行数据迁移时,数据从源数据库到目标数据库的过程中有四个环节涉及到字符集,如果这四个环节的字符集不一致,将会发生字符集转换。
    EXP
         ____________ _________________ _____________
         |imp导入文件|<-|环境变量NLS_LANG|<-|数据库字符集|
          ------------   -----------------   -------------

    IMP
         ____________ _________________ _____________
         |imp导入文件|->|环境变量NLS_LANG|->|数据库字符集|
          ------------   -----------------   -------------

     

     

    四个字符集是
       (1)源数据库字符集
       (2)Export过程中用户会话字符集(通过NLS_LANG设定)
       (3)Import过程中用户会话字符集(通过NLS_LANG设定)
       (4)目标数据库字符集
     
    3.2导出的转换过程
        在Export过程中,如果源数据库字符集与Export用户会话字符集不一致,会发生字符集转换,并在导出文件的头部几个字节中存储Export用户会话字符集的ID号。在这个转换过程中可能发生数据的丢失。


    例:如果源数据库使用ZHS16GBK,而Export用户会话字符集使用US7ASCII,由于ZHS16GBK是16位字符集,而US7ASCII是7位字符集,这个转换过程中,中文字符在US7ASCII中不能够找到对等的字符,所以所有中文字符都会丢失而变成“?? ”形式,这样转换后生成的Dmp文件已经发生了数据丢失。
    因此如果想正确导出源数据库数据,则Export过程中用户会话字符集应等于源数据库字符集或是源数据库字符集的超集
     
    3.3导入的转换过程
        (1)确定导出数据库字符集环境
                 通过读取导出文件头,可以获得导出文件的字符集设置
        (2)确定导入session的字符集,即导入Session使用的NLS_LANG环境变量
        (3)IMP读取导出文件
                 读取导出文件字符集ID,和导入进程的NLS_LANG进行比较
        (4)如果导出文件字符集和导入Session字符集相同,那么在这一步骤内就不需要转换,             如果不同,就需要把数据转换为导入Session使用的字符集。可以看出,导入数据到数据库过程中发生两次字符集转换


        第一次:导入文件字符集与导入Session使用的字符集之间的转换,如果这个转换过程不能正确完成,Import向目标数据库的导入过程也就不能完成。
        第二次:导入Session字符集与数据库字符集之间的转换。

     

    . 查看数据库字符集

    涉及三方面的字符集,

    1. oracel server端的字符集;

    2. oracle client端的字符集;

    3. dmp文件的字符集。

     

    在做数据导入的时候,需要这三个字符集都一致才能正确导入。

     

    4.1 查询oracle server端的字符集

    有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')

    ----------------------------------------------------

    SIMPLIFIED CHINESE_CHINA.ZHS16GBK

     

    SQL>select userenv(‘language’) from dual;

    AMERICAN _ AMERICA. ZHS16GBK

     

    4.2 如何查询dmp文件的字符集

    用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:

    SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;

    ZHS16GBK

     

    如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):

    cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

    然后用上述SQL也可以得到它对应的字符集。

     

    4.3 查询oracle client端的字符集

    在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,

    比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK

    这样就只影响这个窗口里面的环境变量。

     

    在unix平台下,就是环境变量NLS_LANG。

    $echo $NLS_LANG

    AMERICAN_AMERICA.ZHS16GBK

     

    如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。

     

    补充:

    (1).数据库服务器字符集

    select * from nls_database_parameters

    来源于props$,是表示数据库的字符集。

     

    (2).客户端字符集环境

    select * from nls_instance_parameters

    其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

     

    (3).会话字符集环境

    select * from nls_session_parameters

    来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

     

    (4).客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符

    如果多个设置存在的时候,NLS作用优先级别:Sql function > alter session > 环境变量或注册表 > 参数文件 > 数据库默认参数

     

    字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk

     

     

    五.修改oracle的字符集

    按照上文所说,数据库字符集在创建后原则上不能更改。因此,在设计和安装之初考虑使用哪一种字符集十分重要。对数据库server而言,错误的修改字符集将会导致很多不可测的后果,可能会严重影响数据库的正常运行,所以在修改之前一定要确认两种字符集是否存在子集和超集的关系。一般来说,除非万不得已,我们不建议修改oracle数据库server端的字符集。特别说明,我们最常用的两种字符集ZHS16GBK和ZHS16CGB231280之间不存在子集和超集关系,因此理论上讲这两种字符集之间的相互转换不受支持。

     

    不过修改字符集有2种方法可行。

    1. 通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换

    2. 通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER DATABASE CHARACTER SET UTF8。
     

     

    5.1 修改server端字符集(不建议使用)

     

    1.       关闭数据库

    SQL>SHUTDOWN IMMEDIATE

     

    2. 启动到Mount

    SQL>STARTUP MOUNT;

    SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

    SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

    SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

    SQL>ALTER DATABASE OPEN;

    --这里可以从父集到子集

    SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

    SQL>ALTER DATABASE NATIONAL CHARACTER SET AL16UTF16;

    --如果是从子集到父集,需要使用INTERNAL_USE参数,跳过超子集检测

    SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

    SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;

     

    SQL>SHUTDOWN IMMEDIATE;

    SQL>STARTUP

    注意:如果没有大对象,在使用过程中进行语言转换没有什么影响,(切记设定的字符集必须是ORACLE支持,不然不能start) 按上面的做法就可以。

     

    若出现‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when NCLOB data exists’ 这样的提示信息,

    要解决这个问题有两种方法

    1. 利用INTERNAL_USE 关键字修改区域设置,

    2. 利用re-create,但是re-create有点复杂,所以请用internal_use

     

    SQL>SHUTDOWN IMMEDIATE;

    SQL>STARTUP MOUNT EXCLUSIVE;

    SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

    SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

    SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

    SQL>ALTER DATABASE OPEN;

    SQL>ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USEUTF8;

    SQL>SHUTDOWN immediate;

    SQL>startup;

    如果按上面的做法做,National charset的区域设置就没有问题

     

    5.2 修改dmp文件字符集

    上文说过,dmp文件的第2第3字节记录了字符集信息,因此直接修改dmp文件的第2第3字节的内容就可以‘骗’过oracle的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因为改的只是dmp文件,所以影响不大。

     

    具体的修改方法比较多,最简单的就是直接用UltraEdit修改dmp文件的第2和第3个字节。

    比如想将dmp文件的字符集改为ZHS16GBK,可以用以下SQL查出该种字符集对应的16进制代码: SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;

    0354

    然后将dmp文件的2、3字节修改为0354即可。

    如果dmp文件很大,用ue无法打开,就需要用程序的方法了。

     

    5.3客户端字符集设置方法
         1)UNIX环境
             $NLS_LANG=“simplified chinese”_china.zhs16gbk
             $export NLS_LANG
             编辑oracle用户的profile文件
        2)Windows环境
             编辑注册表
             Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE--》HOME

      或者在窗口设置:

            set nls_lang=AMERICAN_AMERICA.ZHS16GBK



    转自:http://blog.csdn.net/tianlesoftware/article/details/4915223

    展开全文
  • Oracle SQL语言

    2008-10-12 09:56:47
    Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言Oracle SQL语言
  • Oracle SQL Developer语言设置

    千次阅读 2014-09-25 10:53:27
    在软件ide/bin目录下找到sqldeveloper.conf或ide.conf,加入    AddVMOption -Duser.language=en  AddVMOption -Duser.country=US

    在软件ide/bin目录下找到sqldeveloper.conf或ide.conf,加入 

     

    AddVMOption -Duser.language=en 

    AddVMOption -Duser.country=US


    重新启动之后变成英文操作界面

    展开全文
  • Oracle PLSQL语言基础

    2008-12-02 21:19:16
    Oracle PLSQL语言基础 Oracle PLSQL语言基础 Oracle PLSQL语言基础 Oracle PLSQL语言基础
  • 改变浏览器默认语言设置 我们最常采用的网络浏览器一般以微软的 IE (包含 IE6.0 和 IE7.0 )居多,下面仅以 IE 7.0 (IE 6.0的语言设置方法相同)浏览器为例说明如何修改浏览器的默认语言。大陆地区安装的IE浏览器...
  • Oracle 参数设置

    千次阅读 2017-02-10 11:35:14
    最近项目设计到数据库内存分配,于是在网上搜了一下,看了几篇文章,总结如下: oracle 实例结构:oracle实例 = 内存结构+进程结构oracle进程=服务进程+用户进程主要的后台进程有:DBWR:数据库读写进程LGWR:日志记录...
  • Oracle PL SQL语言基础

    2008-10-12 09:56:26
    Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础Oracle PL SQL语言基础
  • Oracle管理Oracle基础语言辅导 基本Oracle语言 create(创建) 1创建表 创建表 CREATETABLE( column1DATATYPE[NOTNULL][PRIMARYKEY], column2DATATYPE[NOTNULL], . [constraint<约束名>约束类型(要约束的字段) .] 说明...
  • Oracle数据库SQL语言

    千人学习 2017-01-31 20:16:39
    本课程全面介绍oracle的SQL语言。 介绍查询语句 DML语句 DDL语句 数据库对象等等
  • oracle数据库:理解ORACLE数据库字符集 疯狂代码 / http://DataBase/Article23698.html 一引言 ORACLE数据库字符集即Oracle全球化支持(Globalization Support)或即国家语言支持NLS其作用是 用本国语言和格式来存储...
  • oracle 常用语言

    千次阅读 多人点赞 2014-12-31 09:29:21
    Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。 Oracle SQL语句由如下命令组成: 数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令...
  • SQL语言操纵oracle数据库SQL语言操纵oracle数据库SQL语言操纵oracle数据库SQL语言操纵oracle数据库
  • oracle 更改语言

    千次阅读 2011-11-29 20:07:33
    -- 修改会话的默认日期格式  ALTER SESSION SET nls_date_format = 'YYYY-MM-...-- 临时改变一下会话的默认语言, 以识别类似 '12-MAY-05 ' 的日期格式  alter session set nls_date_language = 'AMERICAN ';  --
  • R语言链接oracle数据库

    2016-06-30 13:51:45
    R语言链接oracle数据库
  • oracle常用设置

    千次阅读 2014-05-30 17:08:15
    设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了。(我的好像不行哦) 7...
  • Oracle语言环境变量配置

    千次阅读 2018-10-10 15:02:41
    新建环境变量: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 如图所示:
  • Oracle基本查询语言

    千次阅读 2018-08-03 16:33:35
    Oracle 基本查询: -- 基本查询 /* DDL:数据库定义语言 :create 、 drop DML:数据库的操作语言 :insert、update、delete DQL:数据库的查询语言 :select 【重点】 DCL:数据库的控制语言...
  • oracle 中的SQL语言基础

    2011-12-15 09:44:56
    oracle 中的SQL语言基础 oracle 中的SQL语言基础
  • Oracle 修改语言环境

    千次阅读 2019-09-27 17:53:29
     唉,安装Oracle 数据库时,手贱语言选择了中文和英语。结果使用的时候不适应。找了几个教程只能修改当前会话的语言环境。就是:  ALTER SESSION SET NLS_LANGUAGE='AMERICAN';  ALTER ...
  • jdbcoracle(多国语言支持) jdbcoracle(多国语言支持)
  • 因为项目需要,需要将Oracle的报错信息显示为英文版,找了很多。最后得到以下方案 每获得一次连接时先执行 ALTER SESSION SET NLS_LANGUAGE=american ALTER SESSION SET NLS_TERRITORY=america 这两句sql,将...
  • Oracle 数据库如何成功实现多语言入库,给出了一种实现多国语言信息存储的基本方法,该方法解决了非中文语言入库时出现的乱码问题。随着企业在发展过程中业务的国际化,业务信息的存储也从单一的本国语言发展成...
  • Go语言访问Oracle

    千次阅读 2018-05-01 10:56:54
    基础环境准备 oracle客户端部署 不在此说明,请自行安装。 安装go-oci8 ...//查看oracle环境变量 ...ORACLE_DOC=/oracle/product/11.2.0.3/db_1/doc ORACLE_SID=dbnms ...ORACLE_HOME=/oracle/product/11...
  • oracle中的SQL语言

    2012-05-21 19:20:07
    oracle中的SQL语言整合,有助于初学者使用oracle
  • 正在看的ORACLE教程是:Oracle PL/SQL语言入门基础。PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 230,143
精华内容 92,057
关键字:

oracle语言设置