我想使用带有外连接的“具有”子句,使用外连接中使用的列。
这是我的查询:
SELECT
I.CARD_BIN BIN
FROM
GE_ICA_BIN I
LEFT OUTER JOIN GE_PAYEE_VALIDATION P ON I.CARD_BIN = P.CARD_BIN
LEFT OUTER JOIN GE_PAYEE PP ON PP.PAYEE_CODE = P.PAYEE_CODE
ORDER BY I.CARD_BIN
HAVING COUNT(*) > 1;
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误:
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
Error at Line: 36 Column: 19
Run Code Online (Sandbox Code Playgroud)
第 36 行是ORDER BY I.CARD_BIN
。
有人可以告诉我如何解决这个问题吗?
我有一些表,我已经启用了对这个表的审计。目前,我正在收集有关谁在何时插入记录的数据。现在我还想记录他/她用来插入记录的确切查询是什么。我创建了一个触发器,目前只记录用户和日期来审计数据收集表。这是触发器的代码:
create or replace trigger auditer
after insert on user01.sometab
for each row
insert into sys.auditlogs values(user,sysdate)
Run Code Online (Sandbox Code Playgroud)
如何使用相同的触发器访问插入语句并将该语句插入到审计表中?甚至有可能吗?
我正在使用 SQL Server 2012。我正在使用 CTE 从项目表中创建一个订单表。订单表的最终计数约为 1.2 亿。整个过程大约需要2个小时。
对表进行分区是否有助于减少完成时间?
如果是这样,我可以按订单年份对空表进行分区,然后从 CTE 插入到订单表中吗?或者我是否需要在 items 表上创建一个分区,因为 CTE 是从 items 表中汇总的?
此外,我估计的行数与实际行数有很大不同。
在探索新功能时,FORMAT
我遇到了以下问题,想知道是否有其他人遇到过类似的问题并找到了解决方案,或者它是否是一个错误?
SELECT FORMAT(GETDATE(),'mm/dd/yyyy','en-US');
SELECT GETDATE();
Run Code Online (Sandbox Code Playgroud)
输出:
我有两个查询,如下所示,它们做同样的事情。这xmlcolumn
是一个数据类型为 XML 的列。我使用这些查询在 XML 列中的任何位置搜索字符串。
我检查了这两个查询的执行计划,发现第一个查询的 I/O 成本和子树成本低于第二个。我原以为第一个会在使用cast
和 时具有更高的成本charindex
,但事实并非如此。
为什么它的成本更低?
第一个查询:
SELECT *
FROM mytable
WHERE ( Charindex('abc',CAST([xmlcolumn] AS VARCHAR(MAX)))>0 )
Run Code Online (Sandbox Code Playgroud)
第二个查询:
SELECT *
FROM mytable t1
WHERE t1.[xmlcolumn].exist('//*/text()[contains(.,"abc")]')=1
Run Code Online (Sandbox Code Playgroud) 我知道批量插入的概念,其中我将数据从平面文件加载到数据库。
现在我想将表中的数据卸载到平面文件,即我想将表中的数据导出到平面文件。谁能告诉我如何做到这一点?
我正在使用 SQL Server 2008 R2。
由于诸如 PostgreSQL(和 PostGIS)之类的重量级数据库的安全功能,我最大的恐惧之一是被锁定在我自己的数据之外。虽然我可以以管理员身份登录,但我想正确地做事并创建具有定义角色的用户。不幸的是,在我的初步测试中,我从未能够让它可靠地工作。我显然不理解 pgAdmin III 管理的 PostgreSQL 安全模型。
问题:
在 ms-access 中,如果创建了一个名为 'ted' 的用户并提供了密码,然后被删除,然后重新创建了一个名为 'ted' 的用户。第一个 ted 和第二个 ted 不一样。除了可见名称之外,还有一个隐藏的唯一代码,每次创建用户时都会生成该代码。这使得无法重新创建已删除的用户。我只是想知道 PostgreSQL 是否有这样的隐藏逻辑,可以欺骗新用户。
我遇到的关键问题是,当我通过 PgAdmin III 为特定数据库上的用户定义权限时,我无法使用 QGIS 中的用户名和密码连接到数据库。
目前,我正在使用 SpatialLite 来避免这个问题。
使用fn_dblog
我可以获得我的数据库的在线事务日志的活动部分。
但是在每个检查点之后,我只能看到 2 个条目显示检查点的开始和检查点LOP_BEGIN_CKPT
的结束LOP_END_CKPT
。
我想知道之前的日志是在每个检查点之后删除还是只是因为dbi_checkptLSN
位于引导页面中的值指示最新的 LSN而被忽略?
如果dbi_checkptLSN
是我能够移动该指标的结果,如果是,如何移动?
如果没有,并且没有删除日志,我如何访问以前的日志?
有人可以告诉我这个语法有什么问题吗:
CREATE TABLESPACE ACME_DATA
DATAFILE '/oracle/d02/acme/ACME_DATA_01.dbf'
SIZE 40M
EXTENT MANAGEMENT LOCAL
AUTOEXTEND ON NEXT 2M
MAXSIZE 100M
UNIFORM SIZE 128KB
SEGMENT SPACE MANAGEMENT AUTO;
Run Code Online (Sandbox Code Playgroud)
错误报告:
SQL Error: ORA-02180: invalid option for CREATE TABLESPACE
02180. 00000 - "invalid option for CREATE TABLESPACE"
Run Code Online (Sandbox Code Playgroud) 为什么 MySQL 服务器软件比 SQLite 更大(大小)?是什么让它这么大?不只是一些用于保存表格及其条目的网络协议和代码吗?
SQLite 与 MySQL 使用相同的语言,只有 300kb 的库,但 MySQL Server 的大小约为 600mb。
sql-server ×4
oracle ×3
performance ×2
checkpoint ×1
mysql ×1
partitioning ×1
postgresql ×1
xml ×1