问题描述
创建表t1 ( id, number number (10) c c c c c lob, zip number (5) )
;
插入t1值(1,'
姓名,年龄,性别,出生日期,电话,邮编
AIT,33,M,08/26/1982,111222111,11223
SAM, 30, M, 1985年8月26日, 1113331111, 11223
ANU, 28 F, 1987年8月26日, 11444111, 11223
马克, 25,M,1990年8月26日, 11555111 , 11223
')
;
创建表t2 (
名称varchar2(5) ,
年龄编号,
性别变量2(1) ,
多巴日期,
电话varchar2(20) ,
拉链varchar2(6) ,
状态字符(1) ,
错误码编号(20) ,
错误描述varchar2(20)
);
/
我已经使用下面的代码将数据从t1加载到t2表。
SQL>插入t2 (姓名、年龄、性别、身份、电话、zip )
2选择x.name、x.age、x.gender、to_date ( x.dob、'MM/DD/YYYY')、x.phone、x.zip
t1起3
4、xmltable(
5'/a【位置()>1]'
6通过xmlparse(内容
7'' ||
8 replace(
9 replace(dbms_xmlgen.convert(t1.c), ',', '')
10 , chr(10)
11 , ''
12 ) ||
13 ''
14)
15列名称varchar2(30)路径'b[1]'
16 ,年龄编号路径'b[2]'
17 ,性别varchar2(1)路径'b[3]'
18 , dob varchar2(10)路径'b[4]'
19 ,电话varchar2(10)路径'b[5]'
20 , zip varchar2(5)路径'b[6]'
21) x ,其中id =1
22 ;
插入4行
SQL>从t2中选择* ;
姓名年龄性别DOB手机ZIP
--------------------------------------------------------------------------------------------------------------
阿美特33 M 26/08/1982 1112221111 11223
SAM 30 M 26/08/1985 1113331111 11223
ANU 28 F 26/08/1987 111441111 11223
标志25 M 26/08/1990 111551111 11223
NULL NULL NULL NULL NULL NULL NULL NULL
问题:
1)在t2表中,插入一条空记录作为丢失记录。
2)我需要为此准备一个过程,并且在执行该过程时,我们需要传递id ,根据id ,需要将club列(c)数据插入表2。
3)我需要执行一些数据验证,如名称年龄长度应该为4年龄长度应该为3 ,就像所有列一样。
当任何一个条件不满足时,我们需要更新该特定记录无效,我们需要更新状态列和T2表中的错误码、错误描述。
4)在clob列(C)中,我需要执行一些验证,如果clob数据的格式不正确,比如它们在起始点添加了一些空格。我需要修剪和空间,需要插入到t2表。
5)我需要验证t1表的zip列, t1 zip列数据和cob列的zip数据应该总是相同的。
;
插入t1值(1,'
姓名,年龄,性别,出生日期,电话,邮编
AIT,33,M,08/26/1982,111222111,11223
SAM, 30, M, 1985年8月26日, 1113331111, 11223
ANU, 28 F, 1987年8月26日, 11444111, 11223
马克, 25,M,1990年8月26日, 11555111 , 11223
')
;
创建表t2 (
名称varchar2(5) ,
年龄编号,
性别变量2(1) ,
多巴日期,
电话varchar2(20) ,
拉链varchar2(6) ,
状态字符(1) ,
错误码编号(20) ,
错误描述varchar2(20)
);
/
我已经使用下面的代码将数据从t1加载到t2表。
SQL>插入t2 (姓名、年龄、性别、身份、电话、zip )
2选择x.name、x.age、x.gender、to_date ( x.dob、'MM/DD/YYYY')、x.phone、x.zip
t1起3
4、xmltable(
5'/a【位置()>1]'
6通过xmlparse(内容
7'' ||
8 replace(
9 replace(dbms_xmlgen.convert(t1.c), ',', '')
10 , chr(10)
11 , ''
12 ) ||
13 ''
14)
15列名称varchar2(30)路径'b[1]'
16 ,年龄编号路径'b[2]'
17 ,性别varchar2(1)路径'b[3]'
18 , dob varchar2(10)路径'b[4]'
19 ,电话varchar2(10)路径'b[5]'
20 , zip varchar2(5)路径'b[6]'
21) x ,其中id =1
22 ;
插入4行
SQL>从t2中选择* ;
姓名年龄性别DOB手机ZIP
--------------------------------------------------------------------------------------------------------------
阿美特33 M 26/08/1982 1112221111 11223
SAM 30 M 26/08/1985 1113331111 11223
ANU 28 F 26/08/1987 111441111 11223
标志25 M 26/08/1990 111551111 11223
NULL NULL NULL NULL NULL NULL NULL NULL
问题:
1)在t2表中,插入一条空记录作为丢失记录。
2)我需要为此准备一个过程,并且在执行该过程时,我们需要传递id ,根据id ,需要将club列(c)数据插入表2。
3)我需要执行一些数据验证,如名称年龄长度应该为4年龄长度应该为3 ,就像所有列一样。
当任何一个条件不满足时,我们需要更新该特定记录无效,我们需要更新状态列和T2表中的错误码、错误描述。
4)在clob列(C)中,我需要执行一些验证,如果clob数据的格式不正确,比如它们在起始点添加了一些空格。我需要修剪和空间,需要插入到t2表。
5)我需要验证t1表的zip列, t1 zip列数据和cob列的zip数据应该总是相同的。
专家解答
1)在t2表中,插入一条空记录作为丢失记录。
然后在包装SQL中添加“is not null”作为谓词
2)我需要为此准备一个过程,并且在执行该过程时,我们需要传递id ,根据id ,需要将club列(c)数据插入表2。
创建或替换过程P (编号中的p_id )是...
3)我需要执行一些数据验证,如名称年龄长度应该为4年龄长度应该为3 ,就像所有列一样。
当任何一个条件不满足时,我们需要更新该特定记录无效,我们需要更新状态列和T2表中的错误码、错误描述。
查看有关DML错误日志的视频https://www.youtube.com/watch?v=8WV15BzQIto
4)在clob列(C)中,我需要执行一些验证,如果clob数据的格式不正确,比如它们在起始点添加了一些空格。我需要修剪和空间,需要插入到t2表。
签出INSTR、SSTR和REGEX_... SQL中的函数
5)我需要验证t1表的zip列, t1 zip列数据和cob列的zip数据应该总是相同的。
做一个外部连接,将XML提取到行中的SQL ,返回到T1 ,将提取的zip与ZIP列进行比较。
您已经掌握了所有的工具,在上面的指导下,您就可以很好地构建解决方案了。
然后在包装SQL中添加“is not null”作为谓词
2)我需要为此准备一个过程,并且在执行该过程时,我们需要传递id ,根据id ,需要将club列(c)数据插入表2。
创建或替换过程P (编号中的p_id )是...
3)我需要执行一些数据验证,如名称年龄长度应该为4年龄长度应该为3 ,就像所有列一样。
当任何一个条件不满足时,我们需要更新该特定记录无效,我们需要更新状态列和T2表中的错误码、错误描述。
查看有关DML错误日志的视频https://www.youtube.com/watch?v=8WV15BzQIto
4)在clob列(C)中,我需要执行一些验证,如果clob数据的格式不正确,比如它们在起始点添加了一些空格。我需要修剪和空间,需要插入到t2表。
签出INSTR、SSTR和REGEX_... SQL中的函数
5)我需要验证t1表的zip列, t1 zip列数据和cob列的zip数据应该总是相同的。
做一个外部连接,将XML提取到行中的SQL ,返回到T1 ,将提取的zip与ZIP列进行比较。
您已经掌握了所有的工具,在上面的指导下,您就可以很好地构建解决方案了。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




