是否可以查看delete事务日志中最近发生的语句?
鉴于以下数据:
create table #histories
(
username varchar(10),
account varchar(10),
assigned date
);
insert into #histories
values
('PHIL','ACCOUNT1','2017-01-04'),
('PETER','ACCOUNT1','2017-01-15'),
('DAVE','ACCOUNT1','2017-03-04'),
('ANDY','ACCOUNT1','2017-05-06'),
('DAVE','ACCOUNT1','2017-05-07'),
('FRED','ACCOUNT1','2017-05-08'),
('JAMES','ACCOUNT1','2017-08-05'),
('DAVE','ACCOUNT2','2017-01-02'),
('PHIL','ACCOUNT2','2017-01-18'),
('JOSH','ACCOUNT2','2017-04-08'),
('JAMES','ACCOUNT2','2017-04-09'),
('DAVE','ACCOUNT2','2017-05-06'),
('PHIL','ACCOUNT2','2017-05-07') ;
Run Code Online (Sandbox Code Playgroud)
...代表给定用户分配给帐户的时间。
我希望在每个月的最后一天确定谁拥有给定的帐户(分配的日期是帐户转移所有权的日期),并填充任何缺失的月末(可能是从dates我可用的方便表格中创建的,带有有用的列DateKey,Date和LastDayOfMonth, [@AaronBertrand 提供]) 1 .
期望的结果是:
PETER, ACCOUNT1, 2017-01-31
PETER, ACCOUNT1, 2017-02-28
DAVE, ACCOUNT1, 2017-03-31
DAVE, ACCOUNT1, 2017-04-30
FRED, ACCOUNT1, 2017-05-31
FRED, ACCOUNT1, 2017-06-30
FRED, ACCOUNT1, 2017-07-31
JAMES, ACCOUNT1, 2017-08-31
PHIL, ACCOUNT2, 2017-01-31
PHIL, ACCOUNT2, 2017-02-28
PHIL, ACCOUNT2, 2017-03-31 …Run Code Online (Sandbox Code Playgroud) 我们需要确保只有一个特定过程的副本在 Oracle 中运行。如果它已经在运行并且用户试图打开另一个,那么它应该会出错。
这样做的最佳方法是什么?
如果我在输入“插入”命令时在 SQLPlus 中犯了错误,有没有办法可以将这些信息带回来以进行编辑?
我有一个表,其中有一NTEXT列名为comments. 我有第二个字符串,我们称之为anothercomment(a varchar),它需要放在comments单词 之后的给定字符串中UPDATEHERE。
强制转换会nvarchar(max)截断comments字符串,因此我不能使用CHARINDEX()( Msg 8152, Level 16, State 10, Line 2
String or binary data would be truncated.)。我曾经datalength()检查过是否有几千列 > 8000 个字符。
我想要实现的示例(尽管字符串更长):
注释 -
This is a test UPDATEHERE This is the end of the test另一个评论——
. This is inserted.结果字符串 -
This is a test UPDATEHERE. This is inserted. This is the end of the test …
我有这个查询:
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM test
WHERE
timestamp_range @> '2015-01-22 23:00:00'::timestamp
AND data_int_array @> '{49, 61}'::integer[];
Run Code Online (Sandbox Code Playgroud)
哪些输出:
Bitmap Heap Scan on test (cost=16.74..20.75 rows=1 width=113) (actual time=0.364..0.367 rows=2 loops=1)
Recheck Cond: ((timestamp_range @> '2015-01-22 23:00:00'::timestamp without time zone) AND (data_int_array @> '{49,61}'::integer[]))
Heap Blocks: exact=1
Buffers: shared hit=8
-> BitmapAnd (cost=16.74..16.74 rows=1 width=0) (actual time=0.351..0.351 rows=0 loops=1)
Buffers: shared hit=7
-> Bitmap Index Scan on ix_test_interval (cost=0.00..4.40 rows=17 width=0) (actual time=0.130..0.130 rows=12 loops=1)
Index Cond: (timestamp_range @> '2015-01-22 …Run Code Online (Sandbox Code Playgroud) 大约每周一次,查询
sp_Blitz @IgnorePrioritiesAbove = 50, @CheckUserDatabaseObjects = 0
显示非常旧的数据库备份的“错误”。
显示这一点是正确的,但是如果可用性组 DB 位于辅助节点上且未备份(我使用 Ola 的脚本来备份 DB),是否可以过滤此错误?
在 oracle 中,我可以:
Alter table table_name
modify column_name datatype;
Run Code Online (Sandbox Code Playgroud)
这在红移数据库中可能吗?
我正在经历一些THROW我无法理解的行为。考虑以下存储过程:
CREATE PROCEDURE usp_division_err AS
SET NOCOUNT ON;
BEGIN TRY
EXEC('select 1/0')
END TRY
BEGIN CATCH
THROW;
END CATCH
Run Code Online (Sandbox Code Playgroud)
执行该过程时,会引发以下错误:
消息 8134,级别 16,状态 1,第 1 行
遇到除以零错误。
请注意,没有包含有关在哪个过程中引发错误的信息。那是因为错误的动态 SQL 在另一个作用域中执行,这很好。但是,将CATCH-block更改为如下所示
BEGIN CATCH
THROW 50000, 'An error occurred.', 1;
END CATCH
Run Code Online (Sandbox Code Playgroud)
并且该过程的执行将引发此错误:
Msg 50000, Level 16, State 1, Procedure usp_division_err, Line 7 [Batch Start Line 0]
发生错误。
执行动态SQL时仍然遇到错误,但是当我手动指定错误号和错误消息( 的第一个和第二个参数THROW)时,不知何故出现了执行过程的procedure-name。
为什么过程名称出现在第二个错误消息中而不是第一个错误消息中?
我的 Windows 7 开发机器上安装了 Oracle 12.0.1.2.0(企业包)。意外断电后,Oracle 引擎无法启动:
因此,我无法连接 SQLplus 来执行任何命令,因此,我在网上找到的用于清除 REDO 文件的指南都不适合我。
ORA-01033: ORACLE initialization or shutdown in progress
01033. 00000 - "ORACLE initialization or shutdown in progress"
*Cause: An attempt was made to log on while Oracle is being started up or shutdown.
*Action: Wait a few minutes. Then retry the operation.
Vendor code 1033
Run Code Online (Sandbox Code Playgroud)
这是启动日志:
...
Mon Jun 19 10:56:47 2017
Beginning crash recovery of 1 threads
parallel recovery started with 3 processes
Mon Jun 19 10:56:47 2017 …Run Code Online (Sandbox Code Playgroud) sql-server ×5
oracle ×3
explain ×1
locking ×1
oracle-12c ×1
plsql ×1
postgresql ×1
redshift ×1
sp-blitz ×1
sqlplus ×1
string ×1
t-sql ×1