cMi*_*nor 1 c# postgresql user-defined-functions sql-server-2008 visual-studio
众所周知,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
}
}
Run Code Online (Sandbox Code Playgroud)
很明显,我正在使用 .NET c# 可用语言,然后通过 Visual Studio 2008 部署它以在 SQL Server 2008 中创建存储过程。
现在我的问题是 Postgres 中所有这些的类比是什么?
exec dbo.UDFPostgres 中的类比是什么?我读到 Postgres 使用 C 语言来定义 UDF,也许是 C++,但其他的我不知道......
PL/Python、PL/Perl、PL/Java、PL/TCL、PL/V8 (JavaScript) 和 C 程序。但是,对于大多数作业,您只需使用 PL/PgSQL,这是用于过程的 SQL 的扩展版本。
没有一个,真的。PgAdmin-III 排序。您只需执行 SQL 命令来创建函数,或者在 C 过程的情况下,您可以使用带有 PGXS 的 Makefile。
不知道,这在 SQL Server 中有什么作用?文档链接?如果只是“调用此过程”,那么SELECT my_function();.
| 归档时间: |
|
| 查看次数: |
2115 次 |
| 最近记录: |