小编use*_*r_0的帖子

什么是PostgreSQL相当于TSQL"go"语句?

在T-SQL中,我可以说:

IF EXISTS (SELECT name 
           FROM   sysobjects 
           WHERE  name = 'tableName') 
  DROP TABLE [dbo].[tableName] 
go 
Run Code Online (Sandbox Code Playgroud)

以下SQL命令的等效批处理终结符(即"go")是什么?

DROP TABLE IF EXISTS tableName
Run Code Online (Sandbox Code Playgroud)

t-sql postgresql

7
推荐指数
3
解决办法
6961
查看次数

在日志文件中搜索 - 退出代码

我有一些遗留软件,我需要在Control-M下自动化.这些工作属于Windows 2008R2.

如果它们运行正常,这些作业的退出代码为0,但如果它们可以管理某些错误,则它们也会有.当特定字符串在日志中时,我需要发出警报.
该字符串不在可执行文件的输出中.

我为此实施了另一项工作.它会搜索文件中的字符串,并在"On Do Actions"中搜索该语句.

要在输出中使用语句,我认为使用像grep这样的东西.我用了:

在这两种情况下,我都有相同的情况:

  • 如果找到了字符串,那么每一件事都可以
  • 如果找不到文件或无法打开文件,grep或findstr将返回退出代码= 1.这没关系,因为作业必须引发错误.

但问题是:当在文件中找不到字符串时,grep和findstr都有一个返回码= 1.

如果文件无法打开以及一切运行正常但是找不到日志中的sring,我如何区分这些情况?

shell command-line grep control-m

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

从Sql Server 2008执行oracle存储过程

我试图通过DB LINK从SQL Server 2008 R8执行oracle存储过程,存储过程的标题如下所示:

程序测试(X OUT NOCOPY VARCHAR2,Y OUT NOCOPY NUMBER,Z IN NUMBER)

此过程将更新表"MYTABLE"并返回结果

我的T-SQL是:

           DECLARE @X nvarchar(255)              
           DECLARE @Y INTEGER   
           DECLARE @Z INTEGER


           SET @X= ''
           SET @Y = 0
           SET @Z = 2

           EXEC('begin USER.PKG.TEST(?,?,?); end;',@X OUTPUT, @Y OUTPUT,@Z ) AT DB_ORACLE;
Run Code Online (Sandbox Code Playgroud)

执行存储过程是因为我可以看到表"MYTABLE"已更新,但问题是我得到一个错误:

Msg 7215, Niveau 17, État 1, Ligne 10
Impossible d'exécuter l'instruction sur le serveur distant 'DB_ORACLE'.
Run Code Online (Sandbox Code Playgroud)

转化为

Cannot execute the instruction at the distant server 'DB_ORACLE'
Run Code Online (Sandbox Code Playgroud)

注意:启用Rpc,Rpc Out和Use Remote Collat​​ion的参数

感谢帮助

t-sql sql-server oracle stored-procedures linked-server

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

查询的奇怪行为

我从开发人员那里找到了这个查询:

DELETE FROM [MYDB].[dbo].[MYSIGN] where USERID in
(select USERID from [MYDB].[dbo].[MYUSER] where Surname = 'Rossi');
Run Code Online (Sandbox Code Playgroud)

此查询将删除表MYSIGN中的每条记录.

MYUSER不存在 USERID字段.如果我只运行子查询:

select USERID from [MYDB].[dbo].[MYUSER] where Surname = 'Rossi'
Run Code Online (Sandbox Code Playgroud)

它会抛出正确的错误,因为缺少列.

我们使用右列更正了查询,但我们没有弄明白:

  • 为什么第一个查询有效?
  • 为什么删除每条记录?

规范:数据库位于SQL SERVER 2016 SP1,CU3上.

sql sql-server

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

如何正确地将项目插入表格?SQL/C#

由于我的第二个查询错误,我在将评论插入我的评论表时遇到了麻烦.我继续把我的消息框(调试)读取为(se7en,57547,4)甚至0如果我使用查询而不是(24,57547,4),因为当我输入电影时,它将被转换为电影ID号,以便用作不同表的int.我的目标是阅读为(24,57547,4),以便插入我的桌子.

    private void InsertReview_Click(object sender, EventArgs e)
    {
        string filename, connectionInfo;
        SqlConnection db;

        this.listBox1.Items.Clear();

        filename = "netflix.mdf";

        connectionInfo = String.Format(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\{0};Integrated Security=True;", filename);

        db = new SqlConnection(connectionInfo);
        db.Open();

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = db;

        string moviename = this.textBox1.Text;
        moviename = moviename.Replace("'", "''");

        cmd.CommandText = string.Format(
            @"SELECT MovieID FROM Movies                     
              where MovieName = '{0}';", moviename);

        object result = cmd.ExecuteScalar();

        int id = System.Convert.ToInt32(result);

        this.listBox1.Items.Add(id); //debugging to make sure it converted right

        SqlCommand cmd2 = new SqlCommand();
        cmd2.Connection = db; …
Run Code Online (Sandbox Code Playgroud)

c# sql-server visual-studio-2013

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