用oracle把表中某字段内以“|”分割的数据添加到另一表中不同的字段中
可以通过insert into …… as select 语句来进行实现。
sql:insert into tablename(newname) as select oldname from tablename where 条件语句。
备注:以上语句中插入的字段顺序必须要和查询的语句的顺序保持一致,否则会报错,如果有条件语句的话,可以增加 where条件。
描述再详细些,这两个表的字段是否以知,确定,如果能确定是哪连个字段可用如下SQL
select *
from table1
where exists (select 1
from table2
where table1.columA like '%' || table2.columB || '%')
如果不确定想要所有匹配,那就写存储过程吧
用到substr()方法。。
自己研究一下吧!
----补充----
把详细的需求说出来,具体要插进那个表?那些字段
等下有空帮你写!
--+++++++++ORACLE下 测试通过++++++++++--
--1. 初始化表
create table tableA(
User_fee_Prope varchar2(2000));
insert into tableA values ('存储模式[选择]>1级消费类型名称>2级消费类型名称>3级消费类型名称>范围1>范围2||[不选]>1级消费类型名称>2级消费类型名称>3级消费类型名称>范围1>范围2');
insert into tableA values ('存储模式[选择]>4级消费类型名称>5级消费类型名称>6级消费类型名称>范围3>范围4||[不选]>4级消费类型名称>5级消费类型名称>6级消费类型名称>范围3>范围4');
commit;
create table tableB(
column1 varchar2(200),
column2 varchar2(200),
column3 varchar2(200),
column4 varchar2(200),
column5 varchar2(200),
column6 varchar2(200));
--2. 创建function
create or replace type tabs as table of varchar2(200);
create or replace function splitStr(spStr varchar2, splitor varchar2) return tabs
is
tab tabs := tabs();
pos number;
str varchar(2000);
begin
str := rtrim(ltrim(spStr),splitor);
if spStr is null then return null; end if;
if splitor is null then return null; end if;
loop
pos:=instr(str,splitor);
exit when pos=0 or pos is null;
tab.extend;
tab(tab.last):=substr(str,1,pos-1);
str := rtrim(ltrim(substr(str,pos+1,length(str)),splitor),splitor);
end loop;
if pos=0 or pos is null then
tab.extend;
tab(tab.last):=str;
end if;
return tab;
end;
/
--3.
declare
t1 tabs;
t2 tabs;
begin
for a in (select User_fee_Prope from tableA) loop
t1 := splitStr(a.User_fee_Prope,'||');
for r in t1.first..t1.count loop
t2 := splitStr(t1(r),'>');
insert into tableB values(t2(1),t2(2),t2(3),t2(4),t2(5),t2(6));
end loop;
end loop;
commit;
end;
oracle中将A表中的数据插到B表中,若B表中存在该数据则不插入,存储过程...
Procedure INSERTTABLEDATA AS V_COUNT INT := 0;BEGIN SELECT COUNT(*) INTO V_COUNT FROM B; IF V_COUNT = 0 THEN INSERT INTO B(CJRQ,RYBH,RYXM,RZRQ,ZJBH)SELECT CJRQ,RYBH,RYXM,RZRQ,ZJBH FROM A;END IF;END INSERTTABLEDATA; 如果不在同一个数据库 那么建立一个DATABASE ...
oracle在某个表中增加字段的命令是什么
oracle在某个表中增加字段的命令是alter table,oracle在某个表中增加字段的操作步骤如下:1、首先双击oracle可执行文件连接oracle数据库服务。2、连接成功之后,用鼠标右键点击左侧表选项。3、在右键菜单里选择新建表选项。4、然后需要输入表名,勾选主键不能为空。5、建表成功之后,建字段,点击如下图...
oracle如何把表格导入到oracle中?
重复导入已存在的数据库,有以下两种导入方法IMP和IMPDP;2 IMP导入的时候:如果已经存在此表, 会告诉你无法创建此表,因为表已经存在。同时使用参数full=y ignore=y 那就是全部导入,把dmp里的所有数据插入到表里面。换句话说会有重复,如果该表有主键,重复的会因为违反约束,导入不成功,但不重复的...
oracle 中怎么把一个表中的数据完全复制到另外一个表
先把A表复制到C表(create table table_C as select * from table_A where 1=1)再把B表数据导入到C表 insert into table_C select * from table_B 最后把B表rename 为B_TEMP,把C表rename 为B rename table_b to B_TEMP;rename table_C to table_B;最后检查数据,如果正常 drop掉B_...
oracle怎么用命令向建好的表中插入一列并使它成为第一列?请说详细点...
2》写一个存储过程 CREATE OR REPLACE PROCEDURE INS IS BEGIN FOR I IN 1 .. 200 LOOP INSERT INTO T (COL2) VALUES (I);END LOOP;COMMIT;END;编译并运行该过程,插入列即完成。下面将COL2列调整为第一列:方法一:借用临时表,建temp表与t表的表结构、数据完全一致,重建t表,调整字段...
在oracle中怎样把一个数据库中的一张表的数据复制到另一个数据库中的...
字段n) values(值1, 值2, 值n)。5、在Oracle数据库中,对数据的变更还需要点击【Commit】按钮,也就是左上角向下箭头的图标,如果不点击这个按钮,数据其实不会真正存入数据库。点击【Commit】按钮后,会弹出一个Confirm窗口,此时点击【Yes】就将数据写入数据库,点击【No】则不提交到数据库。
如何向Oracle数据库表中进行大数据量的插入并提交?
大数据量提交可能会造成系统瘫痪,所以不建议这样做。如果有需要,可以在导出insert语句的时候分批次commit(提交)。方法如下:1、登录plsql,进入导出表 2、选择要导出的表,然后下图位置根据需要写上每次多少行提交,选择导出路径,点击导出即可
如何将Oracle一个数据库中的表中的数据导入到另一个数据库中
1、用exp或expdp导出表,再用imp或impdp导入;2、用dblink方式连接不同数据库直接导入。
oracle 怎样给表中某个记录重复数据增加序号
代码如下:SELECT ROW_NUMBER () OVER (ORDER BY english DESC) seq,name,sex,englishFROM '英语成绩表'
oracle数据库如何利用存储过程向表中添加数据?
实际上存储过程向表中插入数据和sql执行的区别是不大的,只不过是存储过程是用loop等循环插入,之后顺序执行sql语句,不用命令行执行。CREATE OR REPLACE PROCEDURE insert_data_4_pressure_3 is --Result1 VARCHAR2(50); VAR_num number;begin VAR_num:=1; while VAR_num< 1000000 ...
弓鲍特非: 这个不难,写个过程就可以了. 用到substr()方法.. 自己研究一下吧!----补充---- 把详细的需求说出来,具体要插进那个表?那些字段 等下有空帮你写!--+++++++++ORACLE下 测试通过++++++++++-- --1. 初始化表 create table tableA( ...
宜章县19227721421: oracle命令如何查询一个表中一个字段里内容谢谢 - ?
弓鲍特非: select shouji from yhm update yhm set shouji=123
宜章县19227721421: Oracle中..怎样把表中的生日字段中的数据 - ?
弓鲍特非: select to_char(生日字段,'yyyy-mm')||'-01' from table_name
宜章县19227721421: oracle中如何根据表中一个字段遍历数据 - ?
弓鲍特非: 写个for循环就可以遍历一遍,例如meminfo 表中有member_id 你现在有的id需要在meminfo 中查询出现次数 declare i number(5);id number(15); begin for rec in(select member_id from meminfo) loop if member_id=&id then i:=i+1; end if; end; 这样就会遍历一遍你的这个数据库
宜章县19227721421: oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段 - ?
弓鲍特非: 拼接字段 select 字段1||字段2||字段3... from a; update b set X字段=(select 字段1||字段2||字段3... from a);
宜章县19227721421: oracle中对某一字段的数据筛选 ,数据表A,表A有个字段为(单位名称),想把单位名称里有些不合要求的删除 - ?
弓鲍特非: --先备份表 create table A_BAK as select * from A;--删除含有'处'的数据 delete from A where 单位名称 like '%处%'; COMMIT;
宜章县19227721421: 查找 oracle 数据库中包含某一字段的所有表的表名 - ?
弓鲍特非: 1、首先,打开并登陆plsql. 2、然后点击左上角的新建,选择sqlwindow. 3、此时,右边区域就会弹出一个sql窗口,我们可以在这里输入一些sql语句. 4、查询多个字段的sql语句为:select字段1,字段2from表名. 5、然后点击左上的执行sql语句图标. 6、耐心等待,在sql窗口下方就会展示你需要查阅的表中的对应字段了.
宜章县19227721421: oracle怎么更新表中的某一个字段的值? - ?
弓鲍特非: 通过Update语句将A表的某列值修改为B表中的指定列的值时,所用的sql语句在Oracle和SQL Server中是不一样的, 代码如下: Oracle中的语句: UPDATE A SET A.COL1=(SELECT B.COL1 from B where A.KEY=B.KEY [and 其它限制(可选)] ) where 其它条件 SQL Server中更新语句: update A SET A.COL1=B.COL1 FROM A,B where A.KEY=B.KEY where 其它条件限制. 若关联条件为多个,where后面用and 连接指定条件即可.
宜章县19227721421: 用oracle如何查询出一个表中的一个字段内容包含另一个表中的某个字段的值呢 - ?
弓鲍特非: 描述再详细些,这两个表的字段是否以知,确定,如果能确定是哪连个字段可用如下SQL select * from table1 where exists (select 1 from table2 where table1.columA like '%' || table2.columB || '%') 如果不确定想要所有匹配,那就写存储过程吧
宜章县19227721421: oracle update更新语句 把某字段值=a+符号+b,其中a,b都是从表中查询得到的值 应该怎么写 - ?
弓鲍特非: Oracle用 || 进行字符串连接 update 某字段值=a || '符号' ||b