我很确定答案是什么,但我想确认一下。有没有办法创建 SQL Server 2012 到 SQL Server 2016 的混合数据库镜像。
将 Oracle 语句ALTER SYSTEM KILL SESSION ...视为...在某种程度上可与 PostgreSQL 语句相媲美SELECT pg_terminate_backend():
您知道ALTER SYSTEM KILL SESSIONPostgreSQL的任何 Oracle 类比(比 更好)SELECT pg_cancel_backend()吗?
pg_terminate_backend
终止一个后端。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。
pg_cancel_backend
取消后端的当前查询。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。
嗨,当我执行假脱机文件时,我试图在异常语句中执行 SQL 文件。
我有这样的事情:
column dt new_value _dt
select to_char(sysdate,'yyyymmdd_hh24mi') dt from dual;
set line 10000;
set pagesize 50000;
set serveroutput on;
spool .\backup\backup.sql
select dbms_metadata.get_ddl(object_type, object_name)
from user_objects
where object_type in ('FUNCTION')
and object_name = 'TEST_TABLE';
Spool Off
spool .\!Run_&_dt..txt
BEGIN
raise_application_error( -20001, 'This is a custom error' );
EXCEPTION
WHEN OTHERS THEN
Prompt ./backup/backup.sql
@ ./backup/backup.sql
END;
Spool Off
Run Code Online (Sandbox Code Playgroud)
我得到下一个错误:
>> BEGIN
raise_application_error( -20001, 'This is a custom error' );
EXCEPTION
WHEN OTHERS THEN
Prompt ./backup/backup.sql
@ ./backup/backup.sql …Run Code Online (Sandbox Code Playgroud) select id
from master_tabe
where id = ALL (select id from user_table where name = 'Nikhil')
select id
from master_tabe
where id = ANY (select id from user_table where name = 'Nikhil')
Run Code Online (Sandbox Code Playgroud)
上面提到的查询返回相同的结果集。据我所知,应该有不同的结果集,因为 user_table 只有一条与姓名 Nikhil 相关的记录。因此,根据此 Any 子句必须返回 1 行,而 All 必须返回 0 条记录。而当我在 user_table 中添加一条记录时,All 子句语句返回 0 行,而 Any 子句仅返回 1 行。
有人可以调查一下吗?
如何计算所有小数位直到第一个零
例如,我有一个名为 x 的列,其中包含一个数值数据类型值 1.955000000
我想计算没有零的小数位。所以在这里我希望查询输出 3 而不是 9(带零)
在安装 PostgreSQL 时,我不断收到消息:
“运行安装后步骤时出现问题。安装可能无法正确完成数据库集群初始化失败。”
这似乎阻止我正确使用 PGadmin。
在安装日志中,我发现以下部分似乎表明出了什么问题。
我一直无法找到解决此问题的方法。
Executing batch file 'rad7C33E.bat'...
The program "postgres" was found by "C:/Program Files/PostgreSQL/11/bin/initdb.exe"
but was not the same version as initdb.
Check your installation.
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb
Script stderr:
Program ended with an error exit code
Error running cscript //NoLogo "C:\Program Files\PostgreSQL\11/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Users\JesseDanckaarts\AppData\Local\Temp/postgresql_installer_6f373c7c91" "C:\Program Files\PostgreSQL\11" "C:\Program Files\PostgreSQL\11\data" 5432 "Dutch,Netherlands" 0: Program ended with an error …Run Code Online (Sandbox Code Playgroud) 我的数据库中存储了不同的电话格式,例如:
727.170.4799
1-416-958-6390
1.561.374.4268
(813) 929-5892
Run Code Online (Sandbox Code Playgroud)
此表中大约有约 200 万条记录,因此修改需要很长时间。我需要通过执行电话查找来查找记录。
我控制的一件事是输入,我可以保证它将是数字。但是我不知道他们是否要输入带有或不带有国家/地区代码的数字,因此以这个数字为例,1-416-958-6390这两个都用于查找:
14169586390
4169586390
Run Code Online (Sandbox Code Playgroud)
应该返回同一行 ( 1-416-958-6390)
如何尽可能高效地拨打电话号码?
这是我得到的,但它超级慢(正如预期的那样):
select * from patients
WHERE ( REPLACE(phone_number, '-', '') LIKE '%4169586390' )
Run Code Online (Sandbox Code Playgroud) 每次我们升级 SQL Server 安装(服务包或累积更新)时,msdb都会从 FULL 恢复模式更改为 SIMPLE 恢复模式。
我知道msdb数据库没有太大变化,并且在 SIMPLE 中使用它是很常见的,但我想知道为什么安装程序要更改它。它导致我的备份软件出错。
以下是安装日志的摘录:
2020-02-15 03:06:38.25 spid8s Starting execution of MSDB.SQL
2020-02-15 03:06:38.25 spid8s ----------------------------------
2020-02-15 03:06:38.35 spid8s Configuration option 'allow updates' changed from 0 to 1. Run the RECONFIGURE statement to install.
2020-02-15 03:06:38.35 spid8s Configuration option 'allow updates' changed from 0 to 1. Run the RECONFIGURE statement to install.
2020-02-15 03:06:38.56 spid8s Checking the size of MSDB...
2020-02-15 03:06:39.41 spid8s
2020-02-15 03:06:39.41 spid8s Setting database option …Run Code Online (Sandbox Code Playgroud) 我来自 Oracle/PostgreSQL 背景,很难应对 SQL Server 触发器实现的限制。
datetime如果不同列的值发生变化,我想更新两个不同的列。这是为了记录该行的两个特定状态变化。
现在 SQL Server 既没有行级触发器,也没有before update触发器。所以我的理解是,我需要加入插入和删除以找出是否发生了状态更改以及发生了哪些状态更改,然后对正在更新的表再次运行“常规”更新。
我的触发器目前看起来像这样:
create trigger ord_status_history_trigger
on jobs
AFTER UPDATE
AS
IF ( UPDATE(order_status) )
BEGIN
update jobs
set transfercomplete = case
when o.order_status = 'initial' and n.order_status = 'sent' then current_timestamp
else n.transfercomplete
end,
installcomplete = case
when o.order_status = 'delivered' n.order_status = 'installed' then current_timestamp
else n.installcomplete
end
from inserted n
join deleted o on o.jobid = n.jobid
join jobs aj on aj.jobid = n.jobid; …Run Code Online (Sandbox Code Playgroud) 在 PostgreSQL 中,我有 2 个具有父/父关系的表。如果没有孩子的记录与之关联,我希望删除父亲记录(使用后触发器)
目前,我一直在做类似的事情
我想知道我是否直接触发删除语句而不获取父记录的计数,例如
在这种情况下,如果任何子项与父项相关联(通过外键),它将抛出错误并且不会被删除
第二种方法是否正确,要完成此操作,是否在 PostgreSQL 中记录了此类错误(外键约束依赖项)
postgresql ×4
sql-server ×3
oracle ×2
decimal ×1
installation ×1
mirroring ×1
msdb ×1
plsql ×1
query ×1
trigger ×1