[20120910]建立包含long类型的表.txt

简介: 需要往一个表里面append一些数据,而表内有long 字段。处理还真麻烦,记录一下。SQL> select * from v$version;BANNER--------------------------------------------------...

需要往一个表里面append一些数据,而表内有long 字段。处理还真麻烦,记录一下。

SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> create table t (id number,pic long);
Table created.

SQL> insert into t values (1,'aaaaaaaaaaaaaaaa');
1 row created.

SQL> create table t1 as select * from t;
create table t1 as select * from t
                          *
ERROR at line 1:
ORA-00997: illegal use of LONG datatype

SQL> create table t1 (id number,pic long);
Table created.

SQL> insert into  t1  select * from t;
insert into  t1  select * from t
                        *
ERROR at line 1:
ORA-00997: illegal use of LONG datatype

--看来含有LONG的字段处理起来很麻烦。 当然方法很多,看了一些blog,发现最简单的是使用sqlplus带的copy命令,
--可以实现。记录一下。俺以前经常用,现在差不多忘记了!!
--参考链接如下:http://www.dbaroad.me/archives/2008/11/long-type-usage.html
SQL> help copy

 COPY
 ----

 Copies data from a query to a table in the same or another
 database. COPY supports CHAR, DATE, LONG, NUMBER and VARCHAR2.

 COPY {FROM database | TO database | FROM database TO database}
            {APPEND|CREATE|INSERT|REPLACE} destination_table
            [(column, column, column, ...)] USING query

 where database has the following syntax:
     username[/password]@connect_identifier

SQL> copy from scott/xyzxyz@192.168.200.56/test.com to scott/xyzxyz@192.168.200.56/test.com append t1 using select * from t;

Array fetch/bind size is 200. (arraysize is 200)
Will commit when done. (copycommit is 0)
Maximum long size is 20000000. (long is 20000000)
   1 rows selected from scott@192.168.200.56/test.com.
   1 rows inserted into T1.
   1 rows committed into T1 at scott@192.168.200.56/test.com.

SQL> set long 100
SQL> select * from t1;
        ID PIC
---------- -----------------
         1 aaaaaaaaaaaaaaaa

SQL> copy from scott/xyzxyz@192.168.200.56/test.com to scott/xyzxyz@192.168.200.56/test.com create t2 using select * from t;

Array fetch/bind size is 200. (arraysize is 200)
Will commit when done. (copycommit is 0)
Maximum long size is 100. (long is 100)
Table T2 created.

   1 rows selected from scott@192.168.200.56/test.com.
   1 rows inserted into T2.
   1 rows committed into T2 at scott@192.168.200.56/test.com.

SQL> desc t2;
Name   Null?    Type
------ -------- ------------
ID              NUMBER(38)
PIC             LONG

SQL> select * from t2;
        ID PIC
---------- ----------------
         1 aaaaaaaaaaaaaaaa

--另外不要设置long参数太小,否则会被截断!
SQL> set long 5
SQL> copy from scott/xyzxyz@192.168.200.56/test.com to scott/xyzxyz@192.168.200.56/test.com insert t2 using select * from t;

Array fetch/bind size is 200. (arraysize is 200)
Will commit when done. (copycommit is 0)
Maximum long size is 5. (long is 5)
   1 rows selected from scott@192.168.200.56/test.com.
   1 rows inserted into T2.
   1 rows committed into T2 at scott@192.168.200.56/test.com.

SQL> set long 50
SQL> select * from t2;
        ID PIC
---------- --------------------------------------------------
         1 aaaaaaaaaaaaaaaa
         1 aaaaa

目录
相关文章
|
7月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
646 0
|
7月前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
206 0
【面试题精讲】Java超过long类型的数据如何表示
【面试题精讲】Java超过long类型的数据如何表示
|
1月前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
36 3
|
1月前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
61 1
|
1月前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
16 0
|
4月前
|
前端开发 Java 数据库
Java系列之 Long类型返回前端精度丢失
这篇文章讨论了Java后端实体类中Long类型数据在传递给前端时出现的精度丢失问题,并提供了通过在实体类字段上添加`@JsonSerialize(using = ToStringSerializer.class)`注解来确保精度的解决方法。
|
7月前
|
安全 Java 编译器
long类型在32位操作系统上的安全问题
long类型在32位操作系统上的安全问题
191 1
|
6月前
|
Java
springboot解决jackson序列化Long类型精度失效问题
springboot解决jackson序列化Long类型精度失效问题
147 0
|
6月前
|
DataWorks 监控 安全
DataWorks产品使用合集之在从ES中抽取增量数据时,遇到long类型的时间戳,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。