小编bil*_*nkc的帖子

将 varchar 数据转换为日期时间失败

我们正在将数据从旧表(所有 varchar 字段)移动到强类型的对应提示中

作为这项工作的一部分,如果所有数据都可以正确转换为适当的类型,我们将从基础实体表中获取数据并将其转储到 Entity_New 中。否则,它将进入名为 Entity_Bad 的现有表的副本。

我们有一个规则引擎,可以在理论上验证数据和类型,因此即使数据存储在字符字段中,数据也应该是干净的。现实是我在这里发帖是因为有些事情已经过去了,我找不到了。Entity 中的 CompletionDate 字段是 varchar(46) NULL

环境是

productversion  productlevel   edition
10.0.4064.0     SP2            Enterprise Edition (64-bit)
Run Code Online (Sandbox Code Playgroud)

我的脚本展示了我在做什么以及什么在起作用但没有起作用

SET NOCOUNT ON

DECLARE
    @startid int = 0
,   @stopid int = 796833


-------------------------------------------------------------------------------
-- Check doesn't find anything wrong with CompletionDate
-------------------------------------------------------------------------------
SELECT
    1
FROM
    [dbo].[Entity] E
    INNER JOIN
        dbo.EntityBatch_New PB
        ON E.FiscalYear = PB.FiscalYear
            AND E.HashCode = PB.HashCode
            AND E.AAKey = PB.AAKey
            AND PB.ProcessResultCode IN ('A','W','M')
WHERE
    PB.EntityBatchId BETWEEN @StartId AND @StopId
    AND …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server t-sql datetime

3
推荐指数
1
解决办法
2322
查看次数

存储在行外数据表中的内存优化表的条件

内存优化表将 LOB 类型存储在内部表中。

我有一个没有显式 LOB 类型的表,但是当我对sys.memory_optimized_tables_internal_attributes运行查询时,我看到列出的 varchar(255) 列的 type_desc 值为INTERNAL OFF-ROW DATA TABLE

SET ANSI_NULLS ON;
GO

SET QUOTED_IDENTIFIER ON;
GO

SET ANSI_PADDING ON;
GO

CREATE TABLE dbo.DERP
(
    RECORD_KEY numeric(30, 0) NOT NULL
,   COL_1 bigint NOT NULL
,   COL_2 datetime2(0) NOT NULL
,   COL_3 datetime2(0) NOT NULL
,   COL_4 varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_5 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_6 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,   COL_7 date NULL
,   COL_8 bigint NULL
, …
Run Code Online (Sandbox Code Playgroud)

sql-server memory-optimized-tables sql-server-2016

3
推荐指数
1
解决办法
672
查看次数

Oracle 的服务器结果缓存的功能

我正在阅读Oracle 概念文档并有疑问 [关于一般缓存机制]:

PL/SQL 函数代码可以包括缓存其结果的请求。调用此函数时,系统会检查缓存。如果缓存包含具有相同参数值的先前函数调用的结果,则系统将缓存的结果返回给调用者并且不重新执行函数体。如果缓存中不包含结果,则系统执行函数体并将结果(对于这些参数值)添加到缓存中,然后再将控制权返回给调用者

我的疑问:

执行 PL/SQL 函数后,其结果集存储在缓存中。然后 DDL 语句更改表/索引/函数使用的任何内容...

如果我现在运行相同的 PL/SQL 函数,我会得到相同的结果还是更新的结果?

oracle plsql cache

2
推荐指数
1
解决办法
204
查看次数

SQL Server 2000 将数据库导出到 csv

我需要将 SQL Server 2000 数据库移动到 MySQL。我遇到了几个并发症。我不是 SQL Server 方面的专家。为了开始,我想要一个结构和数据的 csv 转储。

第一个问题,表视图中未列出应用程序明显正在使用的 3 个表。生成图表时,会出现一个弹出窗口,指出无法加载这些表。奇怪的是,这些表中的数据实际上是在应用程序中返回的(而不是缓存)。

第二个问题是DTS的使用。我正在使用向导将数据库导出为文本。我正在选择“从源数据库复制表和视图”。然后,我可以选择文件类型、分隔符等。有一个下拉列表选择了第一个表。我的问题是,我只能选择 1 个表,但我需要导出整个数据库。继续时,服务器将只导出第一个表。如何让它导出整个数据库?一桌一桌地做这件事会花费太多时间。

sql-server export dts

2
推荐指数
1
解决办法
1595
查看次数

第 1 行第 25 列错误:ORA-00923:未在预期位置找到 FROM 关键字

我有一些可以在 Access 中使用的代码,但现在我想将代码转发给我们的 IT 部门,以便在我们的 SQL 数据库中查看。

任何人都可以帮我转换它,以便它对普通 SQL 是正确的,而不是对 Access SQL 是正确的吗?

我曾尝试在 ORACLE SQL Developer 中对其进行测试,但出现错误:

第 1 行第 25 列错误:ORA-00923:未在预期位置找到 FROM 关键字

SELECT T1.*, 
       (SELECT TOP 1 T3.[SMN_DATEC]-1 
        FROM 
            (SELECT T2.[DET_NUMBERA], T2.[SMN_DATEC] 
             FROM [CHRISCS_EMSAL] AS T2 
             ORDER BY [DET_NUMBERA],[SMN_DATEC]
            ) AS T3 
        WHERE T3.[DET_NUMBERA] = T1.[DET_NUMBERA] 
          AND T3.[SMN_DATEC] > T1.[SMN_DATEC] 
       ) AS EndDate, 
       T1.[DET_NUMBERA], 
       T1.[SMN_DATEC]
FROM CHRISCS_EMSAL AS T1
ORDER BY T1.[DET_NUMBERA], 
         T1.[SMN_DATEC];
Run Code Online (Sandbox Code Playgroud)

oracle ms-access

1
推荐指数
1
解决办法
1407
查看次数

为什么与 SQL Server 复制相关的作业没有显示在 SSMS 的作业文件夹下?

我发现一些与 SQL Server 复制相关的作业没有显示在 SSMS 的作业文件夹下。谁能解释一下这是为什么?

谢谢。

replication sql-server

0
推荐指数
1
解决办法
344
查看次数

我如何将其转换为 SQL Server

如何创建与此查询等效的 SQL Server?

SELECT m.ItemId
    ,item.NAME
    ,m.Expiratory
    ,m.t AS TotalNumber
FROM item
    ,(
        SELECT ItemId
            ,Expiratory
            ,sum(TotalNumber) t
        FROM inbox
        GROUP BY Expiratory
            ,ItemId
        ) m
WHERE (
        (
            m.ItemId
            ,m.Expiratory
            ) NOT IN (
            SELECT ItemId
                ,Expiratory
            FROM outbox
            GROUP BY Expiratory
                ,ItemId
            )
        )
    AND (item.ItemID = m.ItemId)
Run Code Online (Sandbox Code Playgroud)

sql-server

0
推荐指数
1
解决办法
67
查看次数