小编Eri*_*rik的帖子

有没有一种最简单的方法只从oracle中的电子邮件地址中选择域名?

我有一个名为email_id的表 ,列名称为email_id,列中有这些电子邮件 id\xe2\x80\x99s

\n\n
name@yahoo.com\nname@msn.com\nname@gmail.com\nname@xmsoftware.com \n
Run Code Online (Sandbox Code Playgroud)\n\n

我只需要这样的域名作为结果

\n\n
yahoo\nmsn\ngmail\nxmsoftware \n
Run Code Online (Sandbox Code Playgroud)\n\n

还有比这更简单的方法(或)任何其他功能吗?

\n\n
select substr(email_id.email_id,(instr(email_id.email_id,'@',1)+1),(instr(email_id.email_id,'.',1) - (instr(email_id.email_id,'@',1)+1))) as domain \nfrom email_id;\n
Run Code Online (Sandbox Code Playgroud)\n

regex sql oracle

3
推荐指数
1
解决办法
3520
查看次数

为什么我们需要在 Anonymus 块的最后一部分 BEGIN END(执行部分)?

当我尝试运行此代码时

DECLARE
TYPE type_a IS
    TABLE OF NUMBER INDEX BY PLS_INTEGER;
output NUMBER := 1;

FUNCTION fun_2 RETURN type_a IS
    dum type_a;
BEGIN
    SELECT
        employee_id
    BULK COLLECT
    INTO dum
    FROM
        employees;

    RETURN dum;
END fun_2;

PROCEDURE proc_1 AS
BEGIN
    NULL;
END;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误报告 - ORA-06550:第 22 行,第 8 列:PLS-00103:在预期以下情况之一时遇到符号“文件结束”:

begin function pragma procedure 06550. 00000 - "line %s, column %s:\n%s" *原因:通常是 PL/SQL 编译错误。*行动:

但是当我最后添加 BEGIN END 时它工作正常

    DECLARE
    TYPE type_a IS
        TABLE OF NUMBER INDEX BY PLS_INTEGER;
    output NUMBER := …
Run Code Online (Sandbox Code Playgroud)

oracle plsql anonymous-function oracle11g oracle19c

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

标签 统计

oracle ×2

anonymous-function ×1

oracle11g ×1

oracle19c ×1

plsql ×1

regex ×1

sql ×1