易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle ebs 拆分一列为多行的问题

拆分一列为多行的问题
表数据如下
id,name,code
1,abc,c001/c002/c007
2,efg,c001/c003
3,ttt,c008/c010
怎么能转换成
id,name,code
1,abc,c001
1,abc,c002
1,abc,c007
2,efg,c001
2,efg,c003
3,ttt,c008
3,ttt,c010
SQL> create table h_t(id number ,name varchar2(20),code varchar2(50));表已创建。
SQL> begin
2 insert into h_t values (1, 'abc', 'c001/c002/c007');
3 insert into h_t values (2, 'efg', 'c001/c003');
4 insert into h_t values (3, 'ttt', 'c008/c010');
5 commit;
6 end;
7 /
PL/SQL 过程已成功完成。
SQL> select * from h_t;
ID NAME CODE---------- -------------------- --------------------------------------------------
1 abc c001/c002/c007
2 efg c001/c003
3 ttt c008/c010
SQL> create table h_t_1 as select * from h_t where rownum <1;表已创建。
SQL> declare
2 l_i number;
3 l_p number;
4 l_times number;
5 l_str varchar2(10);
6 begin
7 for x in (select * from h_t) loop
8 l_i := 1;
9 l_times := length(x.code) - length(replace(x.code, '/', '')) + 1;
10 for y in 1 .. l_times loop
11 l_p := l_i;
12 l_i := instr(x.code || '/', '/', l_i) + 1;
13 l_str := substr(x.code, l_p, l_i - l_p - 1);
14 insert into h_t_1 values (x.id, x.name, l_str);
15 end loop;
16 end loop;
17 commit;
18 end;
19 /
PL/SQL 过程已成功完成。
SQL> select * from h_t_1;
ID NAME CODE---------- -------------------- --------------------------------------------------
1 abc c001
1 abc c002
1 abc c007
2 efg c001
2 efg c003
3 ttt c008
3 ttt c010


相关文档:

MySQL与Oracle数据类型转换


MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......

oracle与sqlserver执行count(*)返回的结果兼容

由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1);    //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
  Object o = rs1.getObject(1);
 &nbs ......

sqlserver:openrowset / oracle:table/view@dblink名

只是sqlserver 提供的远程数据访问函数;  在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方 ......

关于oracle导入sqlserver存在的唯一索引问题

我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复 ......

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号