我正在尝试配置 Oracle Apex 5 和 ORDS 以与 Tomcat 一起使用。我设法按照 Oracle 文档说明完成了所有步骤,但是当我尝试使用它访问 ORDS 时,http://localhost:8080/ords/出现错误:
404 未找到
该请求无法映射到任何数据库。检查请求 URL 是否正确,以及 URL 到数据库的映射是否已正确配置
请支持,独立运行。
Oracle:11g
操作系统:Linux
Tomcat:7(运行)
我按照标准做法的理解是, HAVING 将与 GROUP BY 一起用于过滤条件,而 WHERE 应该用于一般的按行过滤条件。
然而,关于是否使用 HAVING 作为 WHERE 子句的超集,在线讨论的结论不一。也就是说,它是否可以在没有 GROUP BY 的情况下使用,在这种情况下它作为 WHERE 子句工作。
我想了解在 Oracle、Microsoft SQL 服务器、MySQL、PostGreSQL 和其他工具中使用 HAVING 子句的行业实践是什么。
我在执行此查询时观察到的一件有趣的事情:
SELECT *
FROM SH.SALES
WHERE amount_sold > 1000
HAVING amount_sold < 2000;
Run Code Online (Sandbox Code Playgroud)
它在 Oracle SQL 开发人员桌面中执行时出错,而在 Oracle SQL 开发人员 Web 中成功运行。
我目前正在编写一个 ORDS 插件,旨在过滤某些请求。我不太想让过滤工作,所以我决定遵循 Oracle为其插件 API提供的说明。
我已经使用 Gradle 任务配置了大部分构建,它会自动:
实际上,这是我运行的自动化等价物:
# Assuming the JAR is cURL'd in from somewhere...
java -jar ords.war plugin build/myPlugin.jar
java -jar ords.war configdir /home/makoto/ords-configuration
Run Code Online (Sandbox Code Playgroud)
...我将它部署到我的本地 IntelliJ 实例。
这是我的 servlet 的样子。这是非常基本的。
import oracle.dbtools.plugin.api.di.annotations.Provides;
import oracle.dbtools.plugin.api.http.annotations.Dispatches;
import oracle.dbtools.plugin.api.http.annotations.PathTemplate;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Provides
@Dispatches(@PathTemplate(("/plugin/servlet/")))
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException …Run Code Online (Sandbox Code Playgroud) 我一直在尝试建立连接以使用 ORDS,并且成功过一次,但现在当我尝试连接到 ORDS 上的数据库时收到 404 错误。
当我第一次登录http://127.0.0.1:1521/ords/sql-developer时,我收到以下消息:
该服务在此环境中被禁用 Stack Trace DisabledException [statusCode=404,原因=[该服务在此环境中被禁用]]
java -Doracle.net.tns_admin=C:\Users\ip4169\Desktop\ORDS\ords -jar ords.war 验证
java -Doracle.net.tns_admin=C:\Users\ip4169\Desktop\ORDS\ords -jar ords.war独立版 在此处输入图像描述-> oejs.Server:main: Started @8299ms [检查]
我检查了我的 TNSORA.net 文件,发现我的数据库信息包含在里面。
这是 ORDS 错误页面:如果有人可以帮助我解决这个问题,我将非常感激!
查询可以在“集合查询”模式下以 JSON 形式返回,简称为SELECT * FROM SOMETABLE.
然而,在 PL/SQL 中,这是不可能的。在这种模式下如何实现等效的?
我尝试安装 Oracle REST 数据服务,但出现此错误:(上java -jar ords.war install)
SEVERE: The pool named: apex_pu is not correctly configured,
error: ORA-01017: invalid username/password; logon denied
oracle.dbtools.common.jdbc.ConnectionPoolException:
The pool named: apex_pu is not correctly configured,
error: ORA-01017: invalid username/password; logon denied
at oracle.dbtools.common.jdbc.ConnectionPoolException.badConfiguration(ConnectionPoolException.java:88)
at oracle.dbtools.common.config.db.DatabasePools.badConfiguration(DatabasePools.java:198)
Run Code Online (Sandbox Code Playgroud) Oracle 12c 12.1.0.2,SQL Developer 4.1.3.20
按照在线教程安装了 ORDS(无 APEX)并且自动启用功能工作正常,包括 POST 到启用的 (emp) 表,因此环境看起来不错。但是当我尝试在 POST 中定义 PL/SQL 服务时,我似乎无处可去。这是服务定义:
-- ORDS has been started in Standalone mode in SQL developer here
CREATE OR REPLACE PROCEDURE test_proc IS
BEGIN
INSERT INTO emp (empno, ename) VALUES (10, 'TEST');
END test_proc;
/
BEGIN
ORDS.DEFINE_SERVICE(
p_module_name => 'test' ,
p_base_path => 'test/',
p_pattern => 'simple_insert/',
p_method => 'POST',
p_source_type => ords.source_type_plsql,
p_source => 'BEGIN
hr.test_proc;
END;');
COMMIT;
END;
/
-- At this point the service is defined …Run Code Online (Sandbox Code Playgroud) oracle-ords ×7
oracle ×5
rest ×3
java ×2
dataservice ×1
having ×1
oracle-apex ×1
plsql ×1
post ×1
tomcat ×1