Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server中的问号_Sql_Sql Server_Oracle_Migration - Fatal编程技术网

SQL Server中的问号

SQL Server中的问号,sql,sql-server,oracle,migration,Sql,Sql Server,Oracle,Migration,我有以下Oracle SQL语句: INSERT INTO document_status (result_row_id, timestamp, username, status_type, status, comment_text, document, document_file, assigned_to) VALUES (?, SYSTIMESTAMP, ?, ?, ?, ?, ?, ?, ?) 我想将此语句转换为SQL Server语句,但我不知道值(?,SYSTIMESTAMP

我有以下Oracle SQL语句:

INSERT INTO document_status (result_row_id, timestamp, username,
    status_type, status, comment_text, document, document_file, assigned_to)
VALUES (?, SYSTIMESTAMP, ?, ?, ?, ?, ?, ?, ?)
我想将此语句转换为SQL Server语句,但我不知道
值(?,SYSTIMESTAMP,,,,,,,,,,?)中问号的等效参数。

我能做什么?

您可以在sql server中使用变量:

DECLARE   @result_row_id    INT
        , @username         VARCHAR(100)
        , @status_type      VARCHAR(100)
        , @status           VARCHAR(100)
        , @comment_text     VARCHAR(100)
        , @document         VARCHAR(100)
        , @document_file    VARCHAR(100)
        , @assigned_to      VARCHAR(100)


INSERT INTO document_status 
(
      result_row_id
    , timestamp
    , username
    , status_type
    , status
    , comment_text
    , document
    , document_file
    , assigned_to
)
VALUES 
(
      @result_row_id
    , GETDATE()
    , @username
    , @status_type
    , @status
    , @comment_text
    , @document
    , @document_file
    , @assigned_to
)

实际上,您所看到的几乎肯定是一个准备好的语句,可能是从Java或C#运行的。您看到的
是实际值的占位符,稍后将绑定到语句。因此,这里您可能需要更改的唯一内容是文本
SYSTIMESTAMP
。SQL Server为此使用
SYSDATETIMEOFFSET()

INSERT INTO document_status (result_row_id, timestamp, username, status_type, status,
    comment_text, document, document_file, assigned_to)
VALUES
    (?, SYSDATETIMEOFFSET(), ?, ?, ?, ?, ?, ?, ?);

您是否看到这段代码直接针对Oracle运行,或者这段代码出现在某些应用程序编程语言中,如Java或C#?是的,它出现在Java中,我认为这将是SQL语句,并想知道为什么它们没有在SQL Server Management Studio中用作SQL查询,但现在它已修复,谢谢