gpt4 book ai didi

c# - Postgres analog for c# SQL Server´s stored procedure CLR

转载 作者:行者123 更新时间:2023-11-29 14:07:36 25 4
gpt4 key购买 nike

众所周知,SQL Server 提供了一些可扩展性机制,如用户定义函数、存储过程、触发器...

我有在 SQL Server 2008 中运行的 C# 代码(它是使用 Visual Studio 2008 部署在 DBMS 中的存储过程,然后是 exec dbo.SP_Analysis 'MyTable','Colum1,Column2', 300,0命令用于在SQL Server 2008中获取结果)定义为:

using System;
using System.Collections.Generic;
using System.Text;
using System.Security;
using System.Runtime.InteropServices;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void SP_Analysis(
SqlString table, [SqlFacet(MaxSize = -1)] SqlString columns,
int Nocustomers,
Boolean result)
{
String query = "";

using (SqlConnection conn = new SqlConnection("context connection=true"))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
query = "SELECT " + (String)columns + " FROM " + (String)table + ";";
cmd.CommandText = query;
SqlDataReader reader = cmd.ExecuteReader();
MyObject _myObject = new Object(Nocustomers);
while (reader.Read())
_myObject.read(reader);
reader.Close();
conn.Close();
} //END SqlConnection conn
}
}

class MyObject
{
int NoCustomers;
//some definitions

public MyObject(int NoCustomers)
{
this.NoCustomers = NoCustomers;
//some stuff
}

public void read(SqlDataReader reader)
{
Object[] record = new Object[NoCustomers];
reader.GetValues(record);
//more stuff
}
}

很明显,我正在使用 .NET c# 可用语言,然后通过 Visual Studio 2008 部署它以在 SQL Server 2008 中创建存储过程。

现在我的问题是 Postgres 中所有这些的模拟是什么?

  1. 可以使用什么语言来扩展 Postgres 的功能?
  2. 有可能在 Postgres 中部署 UDF 的 Visual Studio 模拟是什么?
  3. Postgres 中 exec dbo.UDF 的模拟是什么?

我读到 Postgres 使用 C 语言来定义 UDF,也许是 C++但其他的我不知道...

最佳答案

  1. PL/Python、PL/Perl、PL/Java、PL/TCL、PL/V8 (JavaScript) 和 C 程序。不过,对于大多数工作,您只需使用 PL/PgSQL,它是用于过程的 SQL 的扩展版本。

  2. 真的没有。 PgAdmin-III 之类的。你只是execute SQL commands to create functions , 或 in the case of C procedures, you use a Makefile with PGXS .

  3. 不知道,这在 SQL Server 中有什么作用?文档链接?如果只是“调用此过程”,则 SELECT my_function();

关于c# - Postgres analog for c# SQL Server´s stored procedure CLR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14370911/

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