ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 5136|回复: 12

[每日一题] PL/SQL Challenge 每日一题:2017-1-13 12C新特性:JSON的校验

[复制链接]
论坛徽章:
454
秀才
日期:2015-08-18 09:49:27秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01状元
日期:2015-09-09 10:34:21榜眼
日期:2015-09-09 10:34:21秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01
发表于 2017-1-18 04:55 | 显示全部楼层 |阅读模式

最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可发新贴补充或纠正),其他会员如果提供有价值的分析、讨论也可获得纪念章一枚。

每两周的优胜者可获得itpub奖励的技术图书一本。

以往旧题索引:
http://www.itpub.net/forum.php?m ... eid&typeid=1808

原始出处:
http://www.plsqlchallenge.com/

作者:        ChrisSaxon

运行环境:SQLPLUS, SERVEROUTPUT已打开
注:本题给出答案时候要求给予简要说明才能得到奖品

注:本题执行环境为12c或更高

你正在创建一个药品测试应用。它会在这个表中以JSON格式保存测试结果:

create table plch_drug_test_results (
  test_id    int not null,
  patient_id int not null,
  results    clob not null
    check ( results is json ( strict ) ),
  primary key ( test_id, patient_id )
);

下列哪些选项会成功插入一行数据?

(A)
insert into plch_drug_test_results values (1, 1, q'|{
  "drugName": "New Wonder Drug",
  "results": [
    "DRUG INEFFECTIVE"
  ]
}|');


(B)
insert into plch_drug_test_results values (1, 2, q'|{
  drugName: "New Wonder Drug",
  results: [
    "PAIN", "NAUSEA", "HEADACHE", "FATIGUE"
  ]
}|');

(C)
insert into plch_drug_test_results values (1, 3, q'|{
  'drugName': "New Wonder Drug",
  'results': [
    "PAIN IN EXTREMITY", "DEPRESSION", "PYREXIA"
  ]
}|');

(D)
insert into plch_drug_test_results values (1, 4, q'|{
  "drugName": "New Wonder Drug",
  "results": [
    RASH, ABDOMINAL PAIN, INSOMNIA
  ]
}|');


(E)
insert into plch_drug_test_results values (1, 5, q'|{
  "drugName": "New Wonder Drug",
  "results": [
    "MOOD SWINGS", "CRYING", "POOR QUALITY SLEEP",
  ]
}|');
认证徽章
论坛徽章:
166
SQL数据库编程大师
日期:2016-01-13 10:30:43SQL极客
日期:2013-12-09 14:13:35SQL大赛参与纪念
日期:2013-12-06 14:03:45最佳人气徽章
日期:2015-03-19 09:44:03现任管理团队成员
日期:2015-08-26 02:10:00秀才
日期:2015-07-28 09:12:12举人
日期:2015-07-13 15:30:15进士
日期:2015-07-28 09:12:58探花
日期:2015-07-28 09:12:58榜眼
日期:2015-08-18 09:48:03
发表于 2017-1-18 10:06 | 显示全部楼层
A.正确
B.检查json的格式,属性必须双引号
C.单引号同样不可以
D.属性值也得双引号
E.多了一个逗号

选A

使用道具 举报

回复
论坛徽章:
234
白羊座
日期:2016-05-23 11:49:19秀才
日期:2016-03-01 09:57:08处女座
日期:2016-10-27 22:16:58天枰座
日期:2015-12-28 11:03:38巨蟹座
日期:2015-12-20 15:00:56巨蟹座
日期:2015-12-14 21:46:03天枰座
日期:2015-11-30 15:57:24天蝎座
日期:2016-08-16 09:49:11秀才
日期:2015-11-23 10:00:44白羊座
日期:2015-11-29 10:44:09
发表于 2017-1-18 10:32 | 显示全部楼层
答案:A

json 格式好像是名值对,多值加中括号,值用逗号隔开,而且还要加双引号

B 名字没有加双引号
C 名字加的是单引号
D 多个值没有加双引号
E 多个值加了双引号 ,但最后一个的后面多了一个逗号

使用道具 举报

回复
论坛徽章:
234
白羊座
日期:2016-05-23 11:49:19秀才
日期:2016-03-01 09:57:08处女座
日期:2016-10-27 22:16:58天枰座
日期:2015-12-28 11:03:38巨蟹座
日期:2015-12-20 15:00:56巨蟹座
日期:2015-12-14 21:46:03天枰座
日期:2015-11-30 15:57:24天蝎座
日期:2016-08-16 09:49:11秀才
日期:2015-11-23 10:00:44白羊座
日期:2015-11-29 10:44:09
发表于 2017-1-18 10:44 | 显示全部楼层
Naldonado 发表于 2017-1-18 10:06
A.正确
B.检查json的格式,属性必须双引号
C.单引号同样不可以

 抢在我前面了,你NB!!

使用道具 举报

回复
论坛徽章:
454
秀才
日期:2015-08-18 09:49:27秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01状元
日期:2015-09-09 10:34:21榜眼
日期:2015-09-09 10:34:21秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01
 楼主| 发表于 2017-1-19 04:20 | 显示全部楼层
答案A, 3楼得奖。

A: JSON 文档和标准兼容。所以插入成功没有报错。
BC: 在JSON标准中,属性名称必须用双引号包含起来。这个插入会报错:
"ORA-02290: check constraint (...) violated" error.
D: 根据标准,JSON值也必须用双引号包含起来。这个插入会报错:
"ORA-02290: check constraint (...) violated" error.
E: 在数组中尾部带逗号是不允许的。所以这会报错:
"ORA-02290: check constraint (...) violated" error.

使用道具 举报

回复
认证徽章
论坛徽章:
166
SQL数据库编程大师
日期:2016-01-13 10:30:43SQL极客
日期:2013-12-09 14:13:35SQL大赛参与纪念
日期:2013-12-06 14:03:45最佳人气徽章
日期:2015-03-19 09:44:03现任管理团队成员
日期:2015-08-26 02:10:00秀才
日期:2015-07-28 09:12:12举人
日期:2015-07-13 15:30:15进士
日期:2015-07-28 09:12:58探花
日期:2015-07-28 09:12:58榜眼
日期:2015-08-18 09:48:03
发表于 2017-1-19 08:13 | 显示全部楼层
solomon_007 发表于 2017-1-18 10:44
 抢在我前面了,你NB!!

过来拿章!
来自苹果客户端来自客户端

使用道具 举报

回复
论坛徽章:
234
白羊座
日期:2016-05-23 11:49:19秀才
日期:2016-03-01 09:57:08处女座
日期:2016-10-27 22:16:58天枰座
日期:2015-12-28 11:03:38巨蟹座
日期:2015-12-20 15:00:56巨蟹座
日期:2015-12-14 21:46:03天枰座
日期:2015-11-30 15:57:24天蝎座
日期:2016-08-16 09:49:11秀才
日期:2015-11-23 10:00:44白羊座
日期:2015-11-29 10:44:09
发表于 2017-1-19 09:28 | 显示全部楼层

为毛newkid没把这个章章给你呢?

使用道具 举报

回复
认证徽章
论坛徽章:
166
SQL数据库编程大师
日期:2016-01-13 10:30:43SQL极客
日期:2013-12-09 14:13:35SQL大赛参与纪念
日期:2013-12-06 14:03:45最佳人气徽章
日期:2015-03-19 09:44:03现任管理团队成员
日期:2015-08-26 02:10:00秀才
日期:2015-07-28 09:12:12举人
日期:2015-07-13 15:30:15进士
日期:2015-07-28 09:12:58探花
日期:2015-07-28 09:12:58榜眼
日期:2015-08-18 09:48:03
发表于 2017-1-19 09:58 | 显示全部楼层
solomon_007 发表于 2017-1-19 09:28
为毛newkid没把这个章章给你呢?

版主不计入newkid发奖名单了,我的任务就是保证题目不出现冷场。。。。作为回报,他年底把家底全转给我。。。。

使用道具 举报

回复
论坛徽章:
234
白羊座
日期:2016-05-23 11:49:19秀才
日期:2016-03-01 09:57:08处女座
日期:2016-10-27 22:16:58天枰座
日期:2015-12-28 11:03:38巨蟹座
日期:2015-12-20 15:00:56巨蟹座
日期:2015-12-14 21:46:03天枰座
日期:2015-11-30 15:57:24天蝎座
日期:2016-08-16 09:49:11秀才
日期:2015-11-23 10:00:44白羊座
日期:2015-11-29 10:44:09
发表于 2017-1-19 10:02 | 显示全部楼层
Naldonado 发表于 2017-1-19 09:58
版主不计入newkid发奖名单了,我的任务就是保证题目不出现冷场。。。。作为回报,他年底把家底全转给我 ...

恭喜啊,你已经是这块领地的斑猪了!

使用道具 举报

回复
论坛徽章:
454
秀才
日期:2015-08-18 09:49:27秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01状元
日期:2015-09-09 10:34:21榜眼
日期:2015-09-09 10:34:21秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01
 楼主| 发表于 2017-1-19 11:08 | 显示全部楼层
Naldonado 发表于 2017-1-19 09:58
版主不计入newkid发奖名单了,我的任务就是保证题目不出现冷场。。。。作为回报,他年底把家底全转给我 ...

多谢理解和捧场,年底让喵喵给你发个红包。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表