• oracle导表小结


    事件描述:从A主机oracle服务器导出.sql文件到B主机,发现1.导入存在乱码 2.提示USERS表空没有权限(A B主机均为window系统)

    1.针对第一点乱码

    首先确认系统的默认字符编码GBK,

    查询B主机oracle默认编码:select userenv('language') from dual;

    结果为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    操作系统跟oracle编码是一致的,想想,发现editplus的编码之前被我改成UTF-8

    EditPlus--->Document---->File Encoding---------->Change File Encoding

    改成Chinese Simplified(GB2312)936或则Chinese Simplified(GB18030)54936都可以

    关于字符/字符集等问题,可以移步这里 http://bbs.csdn.net/topics/200031525

    修改完字符编码后,在来看第二个问题

    提示USERS表空间无权限,猜测默认表空应该是USERS

    验证下:SELECT u.DEFAULT_TABLESPACE FROM User_Users u,还真是

    问了下系统管理员,发现操作表的用户有自己的表空间 

    于是乎,让DBA执行下以下sql


    alter user username quota unlimited on my_tablespace;--username 表示当前用户名,my_tablespace表示指定的表空 sql的作用是让该表空可以自行扩展

    OK,最后在要执行的表

    create table xxxxxx
    (
    SYS_INT_ID NUMBER not null,
    KPI_ID VARCHAR2(50) not null,
    .........
    )tablespace my_tablespace
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
    initial 80
    next 1
    minextents 1
    maxextents unlimited
    );

    到此 执行sql就没有问题了

    ps:因为这里是新库,表也不多 自己就删除了表 重建表结构,然后在导数据

    如果是增量,就要考虑改变表的表空,这里就不在讨论了

    参考:

    sqlplus 汉字乱码问题的解决

    ORA-01950问题

    oracle 查看用户所在的表空间

    用Java代码查看系统默认字符集编码

  • 相关阅读:
    消除共模干扰的方法
    C#模拟键盘事件
    获取本地IP V4 出现::1
    生成ssh密钥
    苹果应用商店DNS修改加快下载速度
    模算术 modular arithmetic
    有限域和质数的幂
    rere
    test
    图信号处理进行大数据分析
  • 原文地址:https://www.cnblogs.com/draem0507/p/3637808.html
Copyright © 2020-2023  润新知