小编Wad*_*jey的帖子

如何使用私有过程创建 Oracle 包?

我正在创建一个 Oracle 包,我想知道是否可以将 prcedure 设为私有,这是我的示例代码:

CREATE OR REPLACE PACKAGE MYSCHEMA.MyPackage AS
 PROCEDURE MyProcedureA(outputParam OUT VARCHAR2);
 PROCEDURE MyProcedureB(inputParam IN VARCHAR2);
END MyPackage;

/

CREATE OR REPLACE PACKAGE BODY MYSCHEMA.MyPackage AS

 PROCEDURE MyProcedureA(outputParam OUT VARCHAR2) AS
  myHello VARCHAR2(1000) := 'Hello';
 BEGIN
  MyProcedureB(myHello);
  outputParam := 'OK';
 END MyProcedureA;

 PROCEDURE MyProcedureB(inputParam IN VARCHAR2) AS
  myWorld VARCHAR2(1000) := 'World';
 BEGIN
  dbms_output.put_line(inputParam || myWorld);
 END MyProcedureB;

END MyPackage;
Run Code Online (Sandbox Code Playgroud)

是否可以将 MyProcedureB 设为“私有”,我的意思是它只能由包 (MyProcedureA) 中的其他程序调用?

sql oracle plsql plsqldeveloper plsql-package

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

异步 Lambda 函数<字符串>

我是 async/await 的初学者,我的代码出现错误,我无法弄清楚如何修复它:

public static Func<string> GetTheID;

void Main()
{
    GetTheID = async () => await GetMyId(); //Error here!

    Console.WriteLine(GetTheID);
}

public async Task<string> GetMyId()
{
    return await Task.Run(() =>
    {
        return "AAABBBB";
    });
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

无法将异步 lambda 表达式转换为委托类型 'Func<string>'。异步 lambda 表达式可能返回void,TaskTask<T>, 其中没有一个可以转换为'Func<string>'

您能否帮助我如何在不更改委托签名的情况下修复此错误GetTheID(我的意思是不将其签名更改为Func<Task<string>>)?

.net c# async-await

-2
推荐指数
1
解决办法
1877
查看次数

标签 统计

.net ×1

async-await ×1

c# ×1

oracle ×1

plsql ×1

plsql-package ×1

plsqldeveloper ×1

sql ×1