oracle中long转varchar
这个问题,是由于我在使用工具进行对类型模板导出导入后,发现模板对应的表,其字段中,部分具有默认值的,并没有导过去。
我一直比较懒,也不想直接去一个个查询对比了,于是就通过查询自己的表集合,然后搜索其中所有具备默认值的字段,想拼接语句,但是系统表存储默认值为long型,这个时候,就需要把它转为varchar2.于是使用了如下的方法
-- Created on 2011-2-22 by M
declare
-- Local variables here
i integer;
word varchar(4000);
begin
-- Test statements here
for x in ( select t.table_name 表名,
t.column_name as 字段名,
t.data_type as 字段类型,
t.data_length as 字段长度,
t.nullable as 是否为空,
t.data_default as 默认值 ,t.data_default aa,'alter table '|| t.table_name||' modify '||t.column_name||' default ' bb
from USER_TAB_COLS t where TABLE_NAME in (
select table_name from tabs where table_name like 'M_%')
and t.data_default is not null)
loop
word:=x.bb||x.aa||';';--注意,这里面x.aa本来是long型的,被自动转成了varchar2型处理了
dbms_output.put_line(word);
end loop;
end;
这样在test窗口中,一运行,就可以把所有的要修改默认值的字段语句导出来了,然后直接使用,^_^。用类似的方式写个functiong,自然也可以依次返回对应的varchar2等等
分享到:
相关推荐
Oracle 中的 LONG 数据类型 Oracle 中的 LONG 数据类型是一种特殊的数据类型,用于存储可变长字符串。LONG 数据类型的最大长度限制是 2GB,这使得它非常适合存储超出一定长度的文本。实际上,数据字典中很多对象的...
### Oracle的表结构转成MySQL的表结构 #### 功能概述 本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数...
Oracle 普通表转分区表方式 Oracle 分区表(Partitioned Table)是一种特殊的表结构,可以根据不同的条件将数据分割成多个独立的分区,以提高查询效率和减少存储空间。本文将详细介绍将 Oracle 普通表转换为分区表...
DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相对应。Oracle 也支持大对象:BLOB、CLOB、NCLOB 等。例如,Oracle 中的 BLOB 和 CLOB 可以提供 4GB 的空间,而 DB2/400 中的 BLOB 和 CLOB 只能存放...
在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途,下面我们将详细探讨它们,并通过一个简单的示例来展示如何在Oracle数据库中对这些类型进行读写...
- `varchar`: 可变长度的字符串,等同于Oracle中的`VARCHAR2`类型。 - `nvarchar`: 可变长度的Unicode字符串,等同于Oracle中的`VARCHAR2`类型。 - `text`: 大文本数据类型,等同于Oracle中的`LONG`类型。 - `...
- 在创建视图时,如果视图中包含 `ORDER BY` 子句,在 Oracle 中查询视图时可能会导致错误。 - 创建视图示例:`CREATE VIEW v AS SELECT name AS c1, address FROM t1 ORDER BY c1;` - 查询视图示例:`SELECT c1, ...
DB2/400提供VARCHAR和CLOB与Oracle中的RAW和LONG RAW相对应。Oracle也支持大对象:BLOB、CLOB、NCLOB等。DB2/400中的BLOB和CLOB只能存放2GB的数据,而Oracle中的BLOB和CLOB可以提供4GB的空间。 五、ROWID类型 ...
25. **varchar**: 可变长度的非Unicode字符类型,如`varchar(50)`,在Oracle中的对应类型为`VARCHAR2(50)`。 ### Oracle 数据类型 Oracle数据库管理系统提供了丰富的数据类型支持,下面是一些常见数据类型的介绍...
在ORACLE数据库中,有多种数据类型用于存储不同类型的值,包括VARCHAR2、LONG、RAW以及BLOB。这些数据类型在处理不同类型的数据时各有特点,下面将详细解释它们的用法,并提供相应的读写示例。 1. VARCHAR2:这是...
- `VARCHAR2` 在 Oracle 中与 MySQL 的 `VARCHAR` 类型相同,用于存储可变长度的字符串。 - `DATE` 在 Oracle 中等同于 MySQL 的 `DATETIME`,用来存储日期和时间信息。 - `LONG` 或 `CLOB` 类型在 Oracle 中存储...
对于字符型数据(如`CHAR`, `VARCHAR2`, `CLOB`, `LONG`),应使用与数据库字符集一致的编码;而对于多字节或Unicode数据(如`NCHAR`, `NVARCHAR2`, `NCLOB`),则应使用国家字符集定义的编码。 #### 五、查询和...
MySql 中的 VARCHAR 类型相当于 Oracle 中的 VARCHAR2。MySql 中的 INT 可以替代 Oracle 中的 NUMBER。 4. 函数查询 在 MySql 中,可以使用 SELECT 语句查询所有函数,而 Oracle 需要使用allah VIEW 来查询函数。 ...
Oracle 中有多种字符类型,包括 char、varchar、varchar2、long 等。 * char(n):定长字符串,最大长度为 2000 字节。char 类型的字符串长度是固定的,可以指定长度,否则默认为 1 字节长。 * varchar(n):可变长...
在.NET开发中,Oracle数据库是常用的后端存储系统之一,特别是在企业级应用中。了解Oracle数据库与.NET数据类型的映射关系对于开发人员来说至关重要,这直接影响到数据的正确存储、检索和处理。以下是对"Oracle与...
- `VARCHAR2`在Oracle中对应`VARCHAR2`,但在MySQL中转换为`VARCHAR`。 - `TEXT`和`LONGTEXT`在Oracle中转换为`CLOB`,用于存储大量文本。 - `ENUM`在Oracle中无直接对应类型,通常转换为`VARCHAR2`或`NUMBER`。 ...
标签中的`long_to_char`和`long long_to_char`进一步强调了这个转换操作,尽管在SQL中没有`long long`这样的标准类型,但可能是对某种大数据类型的引用,如Oracle的`NUMBER`或PostgreSQL的`BIGINT`。 在压缩包内的`...
2. 字符串类型:VARCHAR和CHAR与Oracle对应,但DB2还提供了LONG VARCHAR,用于存储非常长的字符串。 3. 日期时间类型:DATE、TIME和TIMESTAMP在DB2中的使用方式与Oracle类似,但DB2还提供INTERVAL类型,用于表示...
在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成针对特定字符串的固定长度的数字签名,这...