gpt4 book ai didi

sql - %SQL Server 中的等效行类型

转载 作者:行者123 更新时间:2023-12-02 21:26:41 26 4
gpt4 key购买 nike

我即将将存储过程从 pl/sql 转换为 SQL Server。该过程使用游标循环遍历 select 查询的结果。是否有与 ORACLE rowtype 结构等效的 SQL Server?

最佳答案

与 Oracle 相比,这是不喜欢 SQL Server 的重要原因。

我很失望 SS 没有 %TYPE 和 %ROWTYPE。这些可以节省最初编写代码时的工作时间,并且在需要更改列类型的情况下,也可以节省返回并重新编写所有代码的时间。

在 Oracle 中我曾经这样写:

声明@MyRowVar AS ATable%ROWTYPE;

在 SQL Server 中,我只需这样写:

DECLARE @External_ID                AS BIGINT = NULL;
DECLARE @PlatformID AS INT = NULL;
DECLARE @ActorIDOfReseller AS INT = NULL;
DECLARE @ActorIDOfClient AS INT = NULL;
DECLARE @ActorIDOfExtension AS INT = NULL;
DECLARE @CallType AS NCHAR (10) = NULL;
DECLARE @CallInitiatedDate AS DATE = NULL;
DECLARE @CallInitiatedTimeHH24MI AS TIME (0) = NULL;
DECLARE @TimePeriodID AS INT = NULL;
DECLARE @CallAnswered AS DATETIME = NULL;
DECLARE @CallAnsweredYN AS BIT = NULL;
DECLARE @CallDispositionID AS INT = NULL;
DECLARE @CountryID AS INT = NULL;
DECLARE @CallPrefixID AS INT = NULL;
DECLARE @FromNumber AS VARCHAR (32) = NULL;
DECLARE @ToNumber AS VARCHAR (80) = NULL;
DECLARE @CallDuration AS INT = NULL;
DECLARE @CallCostToExtension AS DECIMAL (10, 6) = NULL;
DECLARE @CallCostToClient AS DECIMAL (10, 6) = NULL;
DECLARE @CallCostToReseller AS DECIMAL (10, 6) = NULL;
DECLARE @CallCostToAdmin AS DECIMAL (10, 6) = NULL;
DECLARE @Flow AS VARCHAR (3) = NULL;
DECLARE @CallStart AS DATETIME = NULL;
DECLARE @MoneyUnit AS VARCHAR (32) = NULL;
DECLARE @Prefix AS VARCHAR (32) = NULL;
DECLARE @External_CallID AS VARCHAR (255) = NULL;

这让我很伤心。

哈维

关于sql - %SQL Server 中的等效行类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com