SQL Developer管理RESTful 服务

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

$ systemctl status ords
● ords.service - Oracle REST Data ServicesLoaded: loaded (/etc/systemd/system/ords.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2024-05-30 00:47:59 GMT; 4 days agoProcess: 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.0KCGroup: /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  CurrentDload  Upload   Total   Spent    Left  Speed0     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  CurrentDload  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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23中设计模式之一— — — —命令模式的详细介绍

命令模式 Command Pattern讲解 概念描述模式结构主要角色模式的UIM类图模式优点模式缺点应用场景实例演示类图代码演示运行结果 概念 命令模式&#xff08;别名&#xff1a;动作&#xff0c;事务&#xff09; 命令模式是一种行为设计模式&#xff0c;将一个请求封装为一个对象…

【qt】项目移植

项目移植 一.前言二.同名问题三.具体操作1.修改文件名2.修改类名3.修改一些不能自动改的名4.修改.ui文件5.删除原来自动生成的ui_xxx.h文件6.修改头文件 四.导入项目五.使用导入的项目六.项目建议 一.前言 终于概率论考完了,有时间了,接着上个项目,我们继续来完成我们的多窗口开…

【Pycharm】功能介绍

1.Code Reformat Code 格式化代码&#xff0c;可以帮助我们去自动调整空格等&#xff0c;根据python语法规范自动调整 2.Settings 1.创建py文件默认填充模版 3.读写py文件编码格式一致性 顶部代码指定的编码方式作用&#xff1a; 可以保证python2/3解释器在读取文件的时候按…

jmeter并发测试

目录 常用的压测工具jmeter安装配置并执行新建测试计划 Test Plan添加线程组练习01&#xff1a;共10个线程&#xff0c;每秒钟启动一个线程&#xff08;需要10秒&#xff09;&#xff0c;每个线程发送两个请求练习02&#xff1a;共10个线程&#xff0c;1秒中内启动完毕&#xf…

kali中安装、卸载程序教程

1、安装教程 ①、使用apt安装 apt update &#xff08;先更新apt&#xff09; apt-get install xxxx(xxx为需要安装的软件名)②、使用dpkg安装 dpkg –i deb的软件包名&#xff08;需要在软件包的目录下使用&#xff0c;不然就要把地址加上&#xff09;二、卸载教程 ①、使…

ViewModel原理分析

认识 ViewModel ViewModel 是一种用来存储和管理UI相关数据的类。 ViewModel 的作用可以从两个方面去理解&#xff1a; UI界面控制器&#xff1a;在最初的MVC模式中&#xff0c;由于 Activity / Fragment 承担的职责过重&#xff0c;因此在后续的 MVP、MVVM 模式中&#xff…

基于JSP技术的人事管理系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;浏览器&#xff08;如360浏览器、谷歌浏览器、QQ浏览器等&#xff…

深度神经网络——什么是扩散模型?

1. 概述 在人工智能的浩瀚领域中&#xff0c;扩散模型正成为技术创新的先锋&#xff0c;它们彻底改变了我们处理复杂问题的方式&#xff0c;特别是在生成式人工智能方面。这些模型基于高斯过程、方差分析、微分方程和序列生成等坚实的数学理论构建。 业界巨头如Nvidia、Google…

【C语言】文件操作(下卷)

前言 在上一卷中&#xff0c;我们知道了文件指针、文件的打开和关闭&#xff08;打开其他位置的文件&#xff09;、文件的顺序读写&#xff08;其中的fputc()、fgetc()&#xff09;&#xff0c;这一卷中&#xff0c;将继续讲解文件操作未讲到的地方。 内容有点多&#xff0c;…

人大金仓数据库报sys_user表字段不存在的问题

目录 一.问题&#xff1a; 二.原因 三.解决方法&#xff1a; 一.问题&#xff1a; 公司的一个项目从oracle切换到人大金仓之后&#xff0c;突然报了一个sys_user里面的字段不存在。 二.原因 检查了很多次确信sys_user表没问题&#xff0c;查了相应的文档之后发现原来人大金…

企业自建邮件系统的优势,安全性更高,功能更灵活,维护更便捷

在当今企业信息管理的浪潮中&#xff0c;企业邮件系统显得尤为关键&#xff0c;它不仅加强了内部的沟通效率&#xff0c;还对外展示了企业的专业形象。然而&#xff0c;传统租用企业邮箱服务存在一些不足&#xff0c;如缺乏灵活性、数据管理混乱和难以实现个性化需求&#xff0…

Wireshark 如何查找包含特定数据的数据帧

1、查找包含特定 string 的数据帧 使用如下指令&#xff1a; 双引号中所要查找的字符串 frame contains "xxx" 查找字符串 “heartbeat” 示例&#xff1a; 2、查找包含特定16进制的数据帧 使用如下指令&#xff1a; TCP&#xff1a;在TCP流中查找 tcp contai…

服务器数据恢复—raid5阵列上层XFS文件系统数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌CX4-480型号服务器存储&#xff0c;该服务器存储内有一组由20块硬盘组建的raid5磁盘阵列&#xff1b;存储空间分配了1个lun。 服务器存储故障&#xff1a; 工作人员将服务器重装操作系统后&#xff0c;未知原因导致服务器操作系统层…

LlamaIndex 一 简单文档查询

前言 在学习LangChain的时候&#xff0c;我接触到了LlamaIndex。它犹如我在开发vue时用到的axios&#xff0c;主要负责数据打理。别问我为什么打这个比方&#xff0c;前端老狗&#xff0c;重走AI路&#xff0c;闭关一年能否学的妥当&#xff1f; LlamaIndex 是一个用于 LLM 应…

前端项目打包、部署的基础 (vue)

详细请看B站视频 BV19n4y1d7Gr 《禹神&#xff1a;前端项目部署指南&#xff0c;前端项目打包上线》&#xff0c;本博客为自用视频笔记。 目录 项目打包vue打包打包前分析项目请求 本地服务器部署问题 & 解决问题1&#xff1a;刷新页面404问题问题2&#xff1a;ajax请求废…

【人工智能】第六部分:ChatGPT的进一步发展和研究方向

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

秀肌肉-海外短剧系统的案例展示

多语种可以选择&#xff0c;分销功能&#xff0c;多种海外支付方式&#xff0c;多种登录模式可供选择&#xff0c;总之你想到的我们都做了&#xff0c;你没想到的我们也都做了

Partially Spoofed Audio Detection论文介绍(ICASSP 2024)

An Efficient Temporary Deepfake Location Approach Based Embeddings for Partially Spoofed Audio Detection 论文翻译名&#xff1a;一种基于部分欺骗音频检测的基于临时深度伪造位置方法的高效嵌入 摘要&#xff1a; 部分伪造音频检测是一项具有挑战性的任务&#xff0…

NSSCTF-Web题目6

目录 [NISACTF 2022]checkin 1、题目 2、知识点 3、思路 [NISACTF 2022]babyupload 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]1z_unserialize 1、题目 2、知识点 3、思路 [NISACTF 2022]checkin 1、题目 2、知识点 010编辑器的使用、url编码 3、思路 打…

基于NANO 9K 开发板加载PICORV32软核,并建立交叉编译环境

目录 0. 环境准备 1. 安装交叉编译器 2. 理解makefile工作机理 3. 熟悉示例程序的代码结构&#xff0c;理解软核代码的底层驱动原理 4. 熟悉烧录环节的工作机理&#xff0c; 建立下载环境 5. 编写例子blink&#xff0c; printf等&#xff0c; 加载运行 6. 后续任务 0.…