SQL Developer管理RESTful 服务

RESTful 服务依赖于ORDS(Oracle REST Data Services),所以在进行本实验前,请先确认数据库服务器上的ORDS服务已启动:

$ systemctl status ords
● ords.service - Oracle REST Data Services
   Loaded: loaded (/etc/systemd/system/ords.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-05-30 00:47:59 GMT; 4 days ago
  Process: 53329 ExecStart=/usr/bin/bash -c /etc/init.d/ords start (code=exited, status=0/SUCCESS)
 Main PID: 53458 (java)
    Tasks: 0 (limit: 202282)
   Memory: 452.0K
   CGroup: /system.slice/ords.service
           ‣ 53458 java -Doracle.dbtools.cmdline.home=/opt/oracle/ords -Duser.language=en -Duser.region=US -Dfile.encoding=UTF-8 -Djav>

登录Database Actions(即Web版的SQL Developer)。

首先需要在表一级启用REST:
在这里插入图片描述

再次右键单击对象,此时出现新的菜单cURL Command
在这里插入图片描述

首先试一下GET ALL命令:

$ curl -s --location "http://127.0.0.1:8080/ords/hr/csv_data/"
{"items":[{"col1":"e40a9db6","col2":"1b","col3":27531,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAA"}]},{"col1":"6182c817","col2":"73","col3":5355332,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAB"}]},{"col1":"5ed9e437","col2":"d2","col3":4834758,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAC"}]},{"col1":"d77868a1","col2":"64","col3":2129797,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAD"}]},{"col1":"09bfaa73","col2":"89","col3":3294896,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAE"}]},{"col1":"5054cca2","col2":"97","col3":3474577,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAF"}]},{"col1":"d20e9eb4","col2":"7c","col3":2728720,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAG"}]}],"hasMore":false,"limit":25,"offset":0,"count":7,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/"},{"rel":"edit","href":"http://127.0.0.1:8080/ords/hr/csv_data/"},{"rel":"describedby","href":"http://127.0.0.1:8080/ords/hr/metadata-catalog/csv_data/"},{"rel":"first","href":"http://127.0.0.1:8080/ords/hr/csv_data/"}]}

由输出可知,在URL中使用了rowid作为唯一标识。这也可以从GET Single命令的格式中得到验证。
在这里插入图片描述

试一下GET Single命令:

$ curl -s --location "http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAA"
{"col1":"e40a9db6","col2":"1b","col3":27531,"links":[{"rel":"self","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAA"},{"rel":"edit","href":"http://127.0.0.1:8080/ords/hr/csv_data/AAASPYAAMAABv8vAAA"},{"rel":"describedby","href":"http://127.0.0.1:8080/ords/hr/metadata-catalog/csv_data/item"},{"rel":"collection","href":"http://127.0.0.1:8080/ords/hr/csv_data/"}]}

再试下BATCH LOAD命令。在界面中的显示如下:

curl -v -X POST -H "Content-Type: <CONTENT_TYPE>" "http://127.0.0.1:8080/ords/hr/csv_data/batchload" -d "@<FILE_NAME>"

<FILE_NAME>指定为2M.csv,此文件从网上下载:

$ curl -o 2M.csv https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/developer-library/2M.csv

$ ls -lh 2M.csv
-rw-r--r-- 1 XiaoYu 197121 61M May 30 11:43 2M.csv

<CONTENT_TYPE>为text/csv。

因此命令为:

curl -v -X POST -H "Content-Type:text/csv" "http://127.0.0.1:8080/ords/hr/csv_data/batchload" -d "@2M.csv"

万万没想到,执行出错了:

$ curl -v -X POST -H "Content-Type:text/csv" "http://127.0.0.1:8080/ords/hr/csv_data/batchload" -d "@2M.csv"
Note: Unnecessary use of -X or --request, POST is already inferred.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 127.0.0.1:8080...
* Connected to 127.0.0.1 (127.0.0.1) port 8080
> POST /ords/hr/csv_data/batchload HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/8.6.0
> Accept: */*
> Content-Type:text/csv
> Content-Length: 59130062
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
} [65536 bytes data]
 90 56.3M    0     0   90 51.2M      0  69.1M --:--:-- --:--:-- --:--:-- 69.0M* We are completely uploaded and fine
100 56.3M    0     0  100 56.3M      0  18.7M  0:00:03  0:00:03 --:--:-- 18.7M< HTTP/1.1 200 OK
< Content-Type: text/plain
< Transfer-Encoding: chunked
<
{ [193 bytes data]
* Leftovers after chunking: 11 bytes
100 56.3M    0   182  100 56.3M     55  17.2M  0:00:03  0:00:03 --:--:-- 17.2M#ERROR Column in header row COL3e40a9db6 is not defined for table.
#INFO Number of rows processed: 0
#INFO Number of rows in error: 0
#INFO No rows committed
SEVERE: Load terminated

* Connection #0 to host 127.0.0.1 left intact

-d选项改为--data-binary就好了:

$ file 2M.csv
2M.csv: ASCII text, with CRLF line terminators

$ curl --write-out '%{time_total}'  -X POST --data-binary "@2M.csv"  -H "Content-Type: text/csv"  http://localhost:8080/ords/hr/csv_data/batchload
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 60.3M    0   170  100 60.3M      5  1948k  0:00:31  0:00:31 --:--:-- 2038k#INFO Number of rows processed: 2,097,148
#INFO Number of rows in error: 0
#INFO Last row processed in final committed batch: 2,097,148
SUCCESS: Processed without errors
31.735870

参考

  • 4.1 About RESTful Web Services
  • Oracle LiveLabs: ORDS: Build Powerful, Secure, RESTful ORDS APIs for Your Oracle Autonomous Database
  • REST Enable Schema Aliases and SQL Developer Web
  • cURL vs Python: loading data from a file via Oracle REST API

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/684569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv10(1):初探,训练自己的数据

目录 1. 写在前面 2. 值得关注的点 3. 训练自己的数据集 4. 阅读代码的小建议 1. 写在前面 很多人YOLOv9还没有完全研究透&#xff0c;YOLOv10出来了。 惊不惊喜&#xff0c;意不意外&#xff01; 据论文里提到&#xff0c;YOLOv10就是为了加速推理&#xff0c;在保证精度的…

天锐绿盾|防止源代码泄露系统,如何防止开发部门源码外泄?

#源代码防止泄露# 天锐绿盾是一款专为企业设计的数据安全软件&#xff0c;尤其擅长防止开发部门的源代码外泄&#xff0c;它通过一系列综合性的安全策略和技术手段实现这一目标。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5d…

nesting in wrf

Choices for Nesting are:0 no nesting (only available for serial and smpar) 0. no nesting (only available for serial and smpar)1. basic2. preset moves preset moves3. vortex following • default is option 0 for serial/smpar, 1 for dmpar • smpar Shared Mem…

Linux环境---在线安装jdk

Linux环境—在线安装jdk 一、使用步骤 1.安装环境 JDK版本&#xff1a;1.8 1.1 建立存放软件的目录 注意&#xff1a;此处本人是将需要按照的软件存放在directory目录下&#xff0c;可根据实际情况调整接收路径。 命令如下&#xff1a; mkdir directory2.安装jdk 2.1 建…

Paperless-Ngx文档管理系统结合内网穿透实现随时远程搜索查阅文本

文章目录 前言1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 Paperless-ngx是一个开源的文档管理系统&#xff0c;可以将物理文档转换成可搜索的在线档案&#xff0c;从而减少纸张的使…

VS code上创建Vue项目详细化教程2-配置并创建Vue项目

目录 1. 环境准备 1.1 Node.js环境配置 1.1.1 安装Node.js 1.1.2 Node配置全局安装目录&#xff1a; 1.2 安装Vue-cli 2. 工程化Vue项目创建 2.1 命令行形式 2.2 UI 界面&#xff08;我们此处采用UI模式&#xff09; 2.2.1 在文件目录下终端输入 2.2.2 创建新项目 2…

Ansys Mechanical|为了提高结果精度而提高网格划分质量

一&#xff0e;高质量网格划分的要求 1. 一个好的网格划分可以捕获到所有重要几何细节。 2. 差的网格质量会导致收敛困难或者对物理场的描述不佳。 注&#xff1a;收敛困难有助于突出网格相关的误差。但是&#xff0c;如果结果不正确地收敛&#xff0c;则会在应用中导致各种…

Vuforia AR篇(六)— Mid Air 半空识别

目录 前言一、什么是Mid Air&#xff1f;二、使用步骤三、示例代码四、效果 前言 增强现实&#xff08;AR&#xff09;技术正在改变我们与数字世界的互动方式。Vuforia作为先进的AR开发平台&#xff0c;提供了多种工具来创造引人入胜的AR体验。其中&#xff0c;Mid Air功能以其…

纷享销客集成平台(IPaaS)解决方案

针对传统对接方式中的痛点&#xff0c;集成平台提炼了一套成熟的解决方案和配套工具。 痛点&#xff11;&#xff1a;编码工作量大。 每个功能点&#xff0c;和众多的容错分支&#xff0c;都需要逐行编码实现。日志打少了影响问题排查&#xff0c;打多了浪费大量存储。 集成…

Pinia的安装及使用

一、pinia是什么&#xff1f; Store (如 Pinia) 是一个保存状态和业务逻辑的实体&#xff0c;它并不与你的组件树绑定。换句话说&#xff0c;它承载着全局状态。它有点像一个永远存在的组件&#xff0c;每个组件都可以读取和写入它。它有三个概念&#xff0c;state、getter 和 …

【调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输】

调试笔记-系列文章目录 调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 文章目录 调试笔记-系列文章目录调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 前言一、调试环境操作系统&#xff1a;O…

hadoop疑难问题解决_NoClassDefFoundError: org/apache/hadoop/fs/adl/AdlFileSystem

1、问题描述 impala执行查询&#xff1a;select * from stmta_raw limit 10; 报错信息如下&#xff1a; Query: select * from sfmta_raw limit 10 Query submitted at: 2018-04-11 14:46:29 (Coordinator: http://mrj001:25000) ERROR: AnalysisException: Failed to load …

QLocalSocket和QLocalServer

一步一步来吧,不可能一口吃成一个胖子. 看不懂大块的代码,至少可以看懂一个小demo,一小部分代码,小demo看的多了,慢慢也就可以看懂更多代码啦.加油! 不要着急啦! QLocalServer和QLocalSocket单进程和进程通信 - wjbooks - 博客园 (cnblogs.com) QLocalSocket 1.生成随机数 Q…

数字智能数字人直播带货软件系统 实现真人形象的1:1克隆 前后端分离 带完整的安装代码包以及搭建教程

系统概述 数字智能数字人直播带货小程序源码系统是一套集人工智能、3D建模、云计算等技术于一体的综合性解决方案。该系统通过深度学习算法&#xff0c;能够实现对真人形象的精准捕捉和1:1克隆&#xff0c;使数字人在直播过程中呈现出与真人无异的表现力。同时&#xff0c;系统…

超级搜索神器来了!比Kimi更好用的Perplexity AI,让你秒变搜索达人!

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

java——顺序表

前言&#xff1a;顺序表是线性表的一种&#xff0c;它是较于数组更加灵活的一种储存方式。线性表通常是逻辑上是连续的一条直线&#xff0c;但在物理上不是连续的。java中已经实现好了一个顺序表&#xff0c;搭配泛型可以支持各种类型的使用&#xff0c;下面就来介绍该如何使用…

AI绘画揽活新中式室内设计,能不能让你一见“粽”情?

端午节即将来临&#xff0c;计划节前完成的图赶出来了吗?别着急&#xff0c;可以找个AI绘画工具做帮手&#xff0c;让你在短时间内完成高质量的设计。 恰逢端午佳节&#xff0c;相比其他装修风格&#xff0c;新中式显然与端午节更般配&#xff0c;那么我们就用AI绘画的新中式风…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率&#xff0c;但是其标注格式如何能转换成YOLO标注格式&#xff0c;具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

单点登录(SSO)前端怎么做

单点登录&#xff08;SSO&#xff09;前端怎么做 本文介绍单点登录&#xff08;SSO&#xff09;是什么&#xff0c;还有就是前端怎么做。 单点登录&#xff08;SSO&#xff09;是什么 单点登录&#xff08;SSO&#xff0c;Single Sign On&#xff09;&#xff0c;是在企业内部…

vscode设置代码自动换行显示

☆ 问题描述 vscode设置代码自动换行显示 ★ 解决方案 ✅ 总结