我有一个数据库和一个管理它的用户。然后我有一个额外的 USER_APP,我向它授予了对我的 oracle 数据建模器中所有表的 CRUD 访问权限(然后通过生成的脚本应用这些)
我为来自 USER_APP 帐户的每个表创建了一个同义词,语法如下:
create synonym USER_APP.CLIENTS for USER.CLIENTS;
Run Code Online (Sandbox Code Playgroud)
并且对于每个表生成成功并提交。但是当我尝试在该帐户上以任何方式使用它时,例如:
select * from CLIENTS;
Run Code Online (Sandbox Code Playgroud)
我收到 CLIENTS 不存在的错误,即
ORA-00942 : table or view does not exist.
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题,或者我应该在哪里寻找原因/解决方案?
什么会导致以以下开头的错误 1175:You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column...。我的问题是我确实包含了一个WHERE带有键列的子句:WHERE a.a_id = b.b_id
a_id并且b_id是各自表中唯一的键列。
START TRANSACTION;
UPDATE table_a a, table_b b
SET a.update_me = b.update_from_me
WHERE a.a_id = b.b_id;
SELECT * FROM a;
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我的一项工作失败了,它显示以下消息。
Error:
Could not allocate a new page for database 'Reporting' because
of insufficient disk space in Filegroup ‘PRIMARY’.
Create the necessary space by dropping objects in the filegroup,
or setting autogrowth on for existing files in the filegroup.
[SQLSTATE 42000] (Error 1101) The step failed.
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题。
谢谢,阿
Error: Code 1054. Unknown column 'U2.id_naslov' in 'field list' 在 MySQL Workbench 中抛出这个简单的查询:
UPDATE krneki_1 AS U1, krneki_2 AS U2
SET U1.id_naslov = U2.id_naslov
WHERE (U2.id_zaposlen = U1.id_naslovi_zaposleni)
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并阅读了其他帖子,但没有任何帮助...
我想这是一个微不足道的解决方案,但我看不到它。
这种错误从未出现在 TSQL (sql server) 上。
表 krneki_2 是由 Mysql 工作台通过数据导入(创建新表)稍后在发生此错误时创建的,我还将数字字段更改为 smallint 只是为了看看它是否有帮助......但是......没有。
结果SHOW CREATE TABLE krneki_2:
Table: krneki_2
Create Table: CREATE TABLE `krneki_2`
( `id` smallint(6) NOT NULL AUTO_INCREMENT,
`id_naslov` smallint(6) NOT NULL,
`id_zaposlen` smallint(6) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=204 DEFAULT CHARSET=utf8
1 row in …Run Code Online (Sandbox Code Playgroud) 我正在输入类似的内容:
psql --single-transaction --quiet my_db < my_file.sql
Run Code Online (Sandbox Code Playgroud)
当脚本失败时,我收到很多行说:current transaction is aborted, commands ignored until end of transaction block.
在 linux 中我可以使用| more管道传输结果,但在 Windows 中这可能需要很多时间(显示第一个错误,因为管道不是管道)。
我的问题:
有没有办法只得到第一个错误?
在最后一天左右的时间里,我一直在为这个问题摸不着头脑——我只是不明白为什么一个过程在一种环境中有效,但由于转换错误(相同的数据,相同的代码)而在另一种环境中失败。
工作服务器的计划(大幅削减版本)位于: https: //www.brentozar.com/pastetheplan/ ?id=B1jZWTfOf
(这似乎不起作用,所以我已将计划 XML 上传到此处的 Pastebin: https: //pastebin.com/47Q6nniw)
导致问题的相关列的一些背景知识:
propertyInst 表包含一个名为 ValueStr 的列,它是 nvarchar 数据类型。GeneralLedgerCode 表具有数据类型 int 的列 id。我们的开发人员正在尝试连接两个表。ValueStr 列保存文本数据、XML 数据、整数数据、小数数据等。当然,我们决定添加一个函数来确保仅解析整数 (ISNUMERIC(ValueStr) = 1)。我们没有意识到的是,这也会尝试转换任何十进制值 - 这会导致自然生产中的转换错误:
将 nvarchar 值“0.1”转换为数据类型 int 时转换失败。
我的问题是,鉴于 propertyInst 表的表扫描将拾取包括小数在内的所有数值,为什么标量运算符中的隐式转换不会因相同的转换错误而失败?ISNUMERIC 查询的输出返回其中一些小数。我根本看不出所附计划是如何运作的。
隐式转换运算符是否永远不会彻底失败,转换错误是否来自哈希匹配运算符中的探测残差?话又说回来,当隐式转换失败时,该值如何能够到达运算符呢?
作为一个小帮助,计划图像在这里,我要询问的计算标量被圈起来。
此外,我可以看到没有针对标量运算符记录的实际行 - 这是否意味着引擎由于转换错误而决定在运行时不使用该特定运算符?
任何帮助,将不胜感激。
sql-server execution-plan type-conversion errors sql-server-2014
我知道如何解决这个问题,但我不明白为什么当我从SSMS运行下面的查询时它会起作用的技术细节运行下面的查询时它可以工作,但当我将它添加为 SQL Server 代理中的作业时相同的查询会失败,这背后的技术细节是什么。
查询:
select LEFT(datediff(day,GETDATE(),'31/08/20'+'26')/365.25,2) AS test
Run Code Online (Sandbox Code Playgroud)
作业失败时我收到的错误:
从字符串转换日期和/或时间时转换失败。[SQLSTATE 22007](错误 241)。这一步失败了。
SQL 代理是否使用不同的引擎或不同的技术?
如何访问 中错误的数字代码psql?
例如,在本例中,我想获取值 23503(“foreign_key_violation”),如下所示: https: //www.postgresql.org/docs/current/errcodes-appendix.html
postgres=# insert into t values('bb');
ERROR: insert or update on table "t" violates foreign key constraint "fd"
-- How can I see the numeric error code here?
Run Code Online (Sandbox Code Playgroud) 以下简单测试返回错误
CREATE TABLE track (
position point NOT NULL
);
INSERT INTO track VALUES (
position=ST_PointFromText('POINT(-45.62390335574153 -3.9551761173743847)')
);
Run Code Online (Sandbox Code Playgroud)
错误:
错误 1416 (22003):无法从发送到 GEOMETRY 字段的数据中获取几何对象
我究竟做错了什么?
我有一张小桌子,只有几行
create table dbo.p(i int);
insert dbo.p(i)
values (1), (2), (3), (4), (4);
Run Code Online (Sandbox Code Playgroud)
我创建了统计数据;没有索引,只有统计数据。
create statistics p_c on dbo.p(i) with fullscan;
Run Code Online (Sandbox Code Playgroud)
我正在调查各种事情,所以我尝试将 ROWCOUNT 设置为 bigint 的上限。
update statistics dbo.p p_c with rowcount = 9223372036854775807;
Run Code Online (Sandbox Code Playgroud)
此操作失败并显示错误消息
消息 3739,级别 11,状态 3,第 346 行
无法更新索引“p_c”,因为它不是统计信息集合。
ROWCOUNT = 1;尽管成功了,但它也失败了update statistics dbo.p p_c。
该错误不在文档中。我在网上找不到任何相关的内容。
与普通的表统计数据相比,什么是统计数据收集?为什么设置 ROWCOUNT 可能会在这里失败?
SQL Server 2017 (RTM-CU31-GDR) (KB5021126)
errors ×10
sql-server ×3
jobs ×2
mysql ×2
postgresql ×2
psql ×2
update ×2
date ×1
mysql-5.6 ×1
oracle ×1
primary-key ×1
spatial ×1
statistics ×1