问题标签 [ansi-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
27584 浏览

sql - 在 Oracle 脚本中使用变量

有一个生成报告的复杂查询。该查询有几个子查询,它们为不同的产品生成 3 列的表。每个子查询返回一行。然后需要合并所有返回的行。但是有一个要求。如果子查询没有结果行,我们无论如何都需要将相应的产品包含到最终报告中,但指定 Trades_Count 等于 0。

我可以使用一组变量来实现这一点。以下代码将在 MS SQL Server 中完美运行:

我认为我没有使用任何特定于 T-SQL 的东西,而是使用纯 ANSI-SQL(虽然我不是 100% 确定)。

所以这在 Oracle 中不起作用。

首先,它只需要一个 DECLARE 关键字。然后它迫使我使用 Begin ... End 执行范围。然后它不允许我像我一样分配变量(参见上面的示例)——我需要使用“Select INTO”语句来代替。完成所有计算后,它不允许我从局部变量中选择值。见鬼。

有谁知道如何使它在 Oracle 中工作?

谢谢!

0 投票
1 回答
543 浏览

sql - SELECT 和 FROM 子句中的子 SELECT 是否符合标准?

标题基本概括了所有内容。在“符合标准”的 SQL 下,我指的是任何 SQL 标准中允许的 SQL 构造。

我浏览了“理解 SQL”一书,但它只在 , 等子句中提到了子查询WHERE,而不是GROUP BYand (或者我可能遗漏了一些东西)。HAVINGSELECTFROM

我知道 MS SQL 允许子 SELECTSELECTFROM. 我想知道这是否是标准行为。或者它可能不是标准的,但现在已在主要的 SQL 数据库中实现(除了 MS SQL,我对 DB 的经验很少)?

0 投票
2 回答
2929 浏览

sql - Oracle 10g 是否符合 ANSI SQL-1992 子字符串函数标准?

根据ANSI SQL-1992 标准,第 132 页,这是 ANSI 子字符串函数的语法:

SQL 开发人员对 oracle 10g 模式的快速测试:

结果是:

这是否意味着 Oracle 10g 不符合这个特定的 ANSI 标准?

我只是想使用 ANSI 标准子字符串函数而不是供应商特定的函数。

0 投票
3 回答
2036 浏览

mysql - MySQL 应用程序中的安全多租户

我有一个 JSP/MySQL Web 服务,用户可以在其中与“进程”交互——他们可以为给定进程上传数据、配置、查看报告等。他们还可以创建新流程或运行比较多个流程的报告。

目前,进程 ID 在 URL(GET 参数)中指定,因此任何用户都可以与任何进程交互。 我被要求为该服务添加安全性和多租户。 为简单起见,假设每个租户都可以完全访问一组流程,但多个租户可能可以访问流程。

我的首选方法:

  • 添加用户表(PK_User_Id、password_hash、name 等)
  • 添加访问表(FK_User_Id、FK_Process_Id)
  • 将 Tenant_Id 存储在 Session 中的 SSL 登录页面
  • 一个流程选择页面,可让您选择您有权访问的 Process_Id,并将其存储在 Session 中
  • 几乎每个页面都会根据 Session 的 Process_Id 创建其 SQL 查询
  • “跨进程”页面(如创建、选择和比较)将使用会话的 User_Id 代替

我的老板认为这不足以满足外部代码审计的要求。他担心一个任性的开发人员仍然可以编写一个查询,将一个客户的数据暴露给另一个客户,或者其他东西。

他希望我也使用 ANSI SQL 的内置 ROLES(应用程序必须与 DB 无关)为每个用户创建一个 db 角色。该角色将详细说明该角色可以访问哪些表,共享表中的哪些行等。这样,在登录时,连接将是“安全的”,并且开发人员的错误不会导致问题。

  • 这可能吗?
  • 是否存在与 MySQL 一起使用的与 DB 无关的“角色”?
  • 如果主键是“foo”,角色是否可以指定允许您向表中添加行?
  • 按照行业标准,我的系统是否“足够安全”?
0 投票
3 回答
432 浏览

php - 将数据从一个 MySQL 数据库导入另一个 MySQL 数据库?

你能告诉我如何将数据从一个 MySQL Db 导入另一个 MySQL DB。两个数据库的数据模式完全不同,第二个数据库是第一个数据库的规范化版本。

提前致谢

0 投票
1 回答
22009 浏览

sql - Oracle 专有连接 - 在多个条件下连接

我有以下 2 个版本的 ANSI 兼容 SQL(更改列/表名称以保护机密数据),其中一个通过遵循正确的逻辑满足我的要求,而另一个不满足。

1)ANSI Join 1-Works

1)给出这样的输出:

2)ANSI Join 2-不起作用

3)Oracle专有的join-不起作用

2) & 3) 给出如下输出:

我理解 (2,ANSI) & (3,PROPRIETARY) 是等价的。但是(1,ANSI)是否有任何等效的专有SQL?。任何帮助都将受到欢迎。谢谢。编辑:我已经用示例输出更新了问题。

0 投票
3 回答
262 浏览

sql - SQL - 仅选择处于非活动状态的记录

我有以下要求。

我想选择所有 BS = 0 的所有 CustID。所以在上述情况下,只应选择 CustID_3。CustID_1、CustID_2 至少具有 S=1,因此它们不应出现在结果中。

感谢任何帮助。

谢谢!

0 投票
3 回答
4557 浏览

sql - 如何在 ANSI SQL 中进行 EXISTS 选择

是否有一种跨数据库(至少 SQL Server、Oracle、Postgre、MySQL、SQLite)的方式来做我在 T-SQL 中所做的事情

这似乎不是有效的 ANSI SQL 语法,因为没有 FROM 子句。目前我正在使用 COUNT(*) 来执行此操作,但我认为这不是最佳选择。

0 投票
3 回答
1727 浏览

sql - 仅当 ANSI sql 不存在表时才创建表

我正在尝试仅在 SQL 表不存在的情况下动态创建它。我在互联网上看到了很多解决方案,但它们通常依赖于特定的数据库,而我正在尝试找到最通用的解决方案。

我一直在考虑始终运行 CREATE 命令,然后假设如果它失败则表存在并且我可以开始向其中插入数据。我看不出这种推理有任何缺陷(不包括性能问题),但我可能错了。

这是可接受的方法吗?

您能否建议其他独立于数据库的方法,或者使用所有 RDBMS 都接受的 ANSI SQL 的方法?

0 投票
2 回答
5457 浏览

sql - “左连接”与“左外连接”

我知道真的没有区别,但是'LEFT JOIN'是ANSI形式还是有任何RDBMS会失败'LEFT JOIN'并需要'LEFT OUTER JOIN'。[我在这里问,这样我就可以节省一些点击、表格填充等,以获得正确的 ANSI 标准!]