<body>
表一
<table width="151" border="1" cellpadding="0" cellspacing="0">
<col width="239" />
<col width="226" />
<tr height="18">
<td height="18" width="73">Name</td>
<td width="72">jason</td>
</tr>
<tr height="18">
<td height="18">Manager</td>
<td>yyy</td>
</tr>
<tr height="18">
<td height="18">region</td>
<td>aaa</td>
</tr>
<tr height="18">
<td height="18">Code</td>
<td>123</td>
</tr>
<tr height="18">
<td height="18">Level</td>
<td>2</td>
</tr>
<tr height="18">
<td height="18">Status</td>
<td>2</td>
</tr>
</table><p>
表二
<table cellspacing="0" cellpadding="0" border="1">
<tr>
<td>Name</td>
<td>Manager</td>
<td>region</td>
<td>Code</td>
<td>Level</td>
<td>Status</td>
</tr>
<tr>
<td>jason</td>
<td>yyy</td>
<td>aaa</td>
<td>123</td>
<td>2</td>
<td>2</td>
</tr>
</table>
表一的字段为 Name,jason ,其他下面对应的为数据表二的字段为 Name,Manager,region,Code,Level,Status,其他下面为对应的数据问题, 如何将表一的数据和字段 扭转成 表二的数据和字段
</body>
解决方案 »
- 先把表建好了,再用Hibernate映射。主键手动添加该怎么映射。
- pl/sql export!!!!
- oracle md5 加密 问题
- SQL 错误: ORA-31000: 资源 'http://xmlbook.com/sample/contact.xsd' 不是 XDB 方案文档
- 谁能详细讲一下固化视图呀.它的定义,语法等.只要回复就给分
- Oracle 10g的安装问题
- 把这10分加上:oracle805的客户端可以连接oracle816的服务器么?如果可以,分别在服务器端和客户端如何设置啊
- 我是菜鸟,请问,有没有哪个软件可以不用连接远程数据库,直接就可以运行PL/SQL语句?
- 数据库服务启动不了???
- 【江湖救急】sql plus中文提示乱码
- oracle过程的一个问题
- Oracle关于竖表转横表的问题
这是表一的结构
create table a
(
aname varchar2(20),
jason varchar2(20)
);
insert into a values('Manager','yyy');
insert into a values('region','aaa');
insert into a values('code','123');
insert into a values('alevel','2');
insert into a values('status','2');
select * from a;
这是表二的结构
create table b
(
aname varchar2(20),
manager varchar2(20),
region varchar2(20),
code varchar2(20),
alevel varchar2(20),
status varchar2(20)
);
现在问题就是如何把表一的数据插入表二 (表二数据正确的应该如下:)
insert into b values('jason','yyy','aaa','123','2','2');select * from b;
insert into b
select 'jason' aname,
Max(decode(aname,'Manager',jason)) Manager ,
Max(decode(aname,'region',jason)) region,
Max(decode(aname,'code',jason)) code,
Max(decode(aname,'alevel',jason)) alevel,
Max(decode(aname,'status',jason)) status
from a GROUP BY 1;
Connected as scott
SQL>
SQL> CREATE OR REPLACE PROCEDURE proc_b_insert
2
3 AS
4 v_sql1 VARCHAR2(4000);
5 v_sql2 VARCHAR2(4000);
6 v_str VARCHAR2(4000);
7 V_COL VARCHAR2(100);
8 v_cnt NUMBER(2);
9 CURSOR cv_col IS
10 SELECT column_name FROM user_tab_cols t WHERE t.table_name='B';
11 BEGIN
12 V_SQL1:='INSERT INTO B (ANAME';
13 V_SQL2:=' VALUES(';
14 SELECT column_name INTO v_str FROM user_tab_cols WHERE table_name='A' AND column_name<>'ANAME';
15 v_sql2:=v_sql2||''''||lower(v_str)||'''';
16 OPEN CV_COL;
17 LOOP
18 FETCH CV_COL INTO V_COL;
19 EXIT WHEN cv_col%NOTFOUND;
20 SELECT COUNT(*) INTO v_cnt FROM a WHERE upper(a.aname)=v_col;
21 IF v_cnt=1 THEN
22 SELECT a.jason INTO v_str FROM a WHERE upper(a.aname)=v_col;
23 v_sql1:=v_sql1||','||v_col;
24 v_sql2:=v_sql2||','''||v_str||'''';
25 END IF;
26 END LOOP;
27 EXECUTE IMMEDIATE v_sql1||')'||v_sql2||')';
28 END;
29 /
Procedure created
SQL> truncate table b;
Table truncated
SQL> exec proc_b_insert;
PL/SQL procedure successfully completed
SQL> commit;
Commit complete
SQL> select * from b;
ANAME MANAGER REGION CODE ALEVEL STATUS
-------------------- -------------------- -------------------- -------------------- -------------------- --------------------
jason yyy aaa 123 2 2
SQL>