在我的 oracle 数据库中,如果有下表:
Create table Test_call_count (
count number(10)
);
insert into Test_call_count values (0);
现在我可以运行以下 PowerShell 脚本
if ($ora_loaded -eq $null)
{
$ora_loaded = [System.Reflection.Assembly]::LoadWithPartialName("Oracle.DataAccess")
}
$ConnectionString = "Data Source=YOUR_TNS;User ID=YOUR_ID;Password=YOUR_Password"
function Execute-NonQuery
{
param (
$sql
)
$conn = new-object Oracle.DataAccess.Client.OracleConnection
$conn.ConnectionString = $ConnectionString
$cmd = new-object Oracle.DataAccess.Client.OracleCommand($sql,$conn)
$conn.open()
$cmd.ExecuteNonQuery()
$conn.close()
}
Execute-NonQuery "begin update Test_call_count set count = count + 1;DBMS_OUTPUT.PUT_LINE('Test...'); end;"
查看我可以验证的数据库,每次调用都会增加计数。
但是有没有办法扩展它,以便我可以将数据发送到 DBMS_OUTPUT ?
DBMS_OUTPUT.GET_LINES是以编程方式将它们取回的方式。以与任何其他过程相同的方式调用它。或者单行(这可能更容易编码)DBMS_OUTPUT.GET_LINE
这是完整的 PowerShell 代码。它受到这个 C# 示例的启发。有点难找,因为一个未解决的问题就像垃圾邮件一样被转发了一百次。