zoukankan      html  css  js  c++  java
  • Oracle数据类型再探:plsql能建表时能用的数据类型

    在plsql中创建一张表,我可以看到有以下的数据类型

     把这里边的每个数据类型都作为一个字段,发现一个表中只能插入一个long类型的字段,

    于是分成两个表

    -- Create table
    create table ADAMTEST
    (
      d_binary_double      BINARY_DOUBLE,
      d_binary_float       BINARY_FLOAT,
      d_blob2              BLOB,
      d_clob               CLOB,
      d_char               CHAR(2),
      d_date               DATE,
      d_intervald2s        INTERVAL DAY(2) TO SECOND(6),
      d_intervaly2m        INTERVAL YEAR(2) TO MONTH,
      d_long               LONG,
      d_nlob               NCLOB,
      d_number             NUMBER,
      d_number18           NUMBER(18),
      d_number182          NUMBER(18,2),
      d_nvarchar220        NVARCHAR2(20),
      d_raw50              RAW(50),
      d_timestamp          TIMESTAMP(6),
      d_timestamp6         TIMESTAMP(6),
      d_timestamplocalzone TIMESTAMP(6) WITH LOCAL TIME ZONE,
      d_timestampzone      TIMESTAMP(6) WITH TIME ZONE,
      d_verchar220         VARCHAR2(20)
    );
    -- Create table
    create table ADAMTEST2
    (
      d_longraw LONG RAW
    )
    ;

    胡乱添加了些测试数据后,我用C#去获取Oracle中的表,很自然地将其转为DataTable

    但是在这个过程中,Oracle中的数据类型已经转变成了DataTable中的列类型,对照一下,可以得到下表

    大类型 字段名 Oracle数据类型 DataTable数据类型 备注
    文本 D_VERCHAR220 varchar2(20) {Name = "String" FullName = "System.String"}
    文本 D_CLOB clob {Name = "String" FullName = "System.String"}
    文本 D_CHAR char(2) {Name = "String" FullName = "System.String"}
    文本 D_LONG long {Name = "String" FullName = "System.String"}
    文本 D_NLOB nclob {Name = "String" FullName = "System.String"}
    文本 D_NVARCHAR220 nvarchar2(20) {Name = "String" FullName = "System.String"}
    数字 D_INTERVALY2M interval year to month {Name = "Int64" FullName = "System.Int64"} interval 时检差
    数字 D_NUMBER18 number(18) {Name = "Int64" FullName = "System.Int64"}
    数字 D_NUMBER number {Name = "Decimal" FullName = "System.Decimal"}
    数字 D_NUMBER182 number(18,2) {Name = "Decimal" FullName = "System.Decimal"}
    数字 D_BINARY_FLOAT binary_float {Name = "Single" FullName = "System.Single"} Single 类似于float
    数字 D_BINARY_DOUBLE binary_double {Name = "Double" FullName = "System.Double"}
    时间 D_DATE date {Name = "DateTime" FullName = "System.DateTime"}
    时间 D_TIMESTAMP timestamp {Name = "DateTime" FullName = "System.DateTime"}
    时间 D_TIMESTAMP6 timestamp(6) {Name = "DateTime" FullName = "System.DateTime"}
    时间 D_TIMESTAMPLOCALZONE timestamp with local time zone {Name = "DateTime" FullName = "System.DateTime"}
    时间 D_TIMESTAMPZONE timestamp with time zone {Name = "DateTime" FullName = "System.DateTime"}
    时间间隔 D_INTERVALD2S interval day to second {Name = "TimeSpan" FullName = "System.TimeSpan"} TimeSpan表示一个时间间隔
    二进制流 D_BLOB2 blob {Name = "Byte[]" FullName = "System.Byte[]"}
    二进制流 D_RAW50 raw(50) {Name = "Byte[]" FullName = "System.Byte[]"}
    二进制流 D_LONGRAW long raw {Name = "Byte[]" FullName = "System.Byte[]"}

     然后就可以对数据的类型进行分情况处理了。

  • 相关阅读:
    html_Dom
    html_javascript
    html_之css
    协程
    进程和线程的总结
    html_基础标签
    html_头部<meta>设置
    Python_queue单项队列
    Python_paramiko模块
    Python_多进程multiprocessing
  • 原文地址:https://www.cnblogs.com/adamgq/p/12221139.html
Copyright © 2011-2022 走看看