小编mah*_*707的帖子

Oracle中的字符串连接运算符是什么?

Oracle SQL中的字符串连接运算符是什么?

我应该注意哪些"有趣"功能?

(这似乎很明显,但我找不到先前提出的问题).

sql oracle plsql string-concatenation

165
推荐指数
5
解决办法
29万
查看次数

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

任何在线网站执行pl sql程序

我想在线执行PL/SQL程序.任何人都可以建议我做网站吗?

sql plsql saas oracle11g

21
推荐指数
2
解决办法
7万
查看次数

如何在unix脚本中发送带有消息的邮件

unix的新手,学习谈话和走路吧.我正在.ksh中编写一个脚本,并要求发送带有消息的邮件.目前在我的脚本中使用此命令:

    mailx -s"File not found" abc@def.com
Run Code Online (Sandbox Code Playgroud)

此命令可帮助我拥有主题和收件人姓名.我的问题是如何与它一起写一条消息.因为每次我运行脚本它暂停并要求我输入消息然后执行,我想预先包含消息,以便脚本不会暂停.

unix linux email ksh

6
推荐指数
2
解决办法
9万
查看次数

这些PL/SQL变量初始化是否相同?

所以我知道我可以使用以下任一方法在PL/SQL中初始化变量:

  • DEFAULT关键字
  • :=赋值运算符

例如:

  • counter binary_integer DEFAULT 15;
  • counter binary_integer := 15;

这两种方法是否完全等同于PL/SQL引擎,还是有任何细微的差别?

oracle plsql default-value variable-assignment

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

在NUM子列的IN子句中使用逗号分隔值

我在包中有2个程序.我正在调用一个过程来获取逗号分隔的用户ID列表.

我将结果存储在VARCHAR变量中.现在当我使用这个以逗号分隔的列表放入其中的一个IN子句时抛出" ORA-01722:INVALID NUMBER"异常.

这就是我的变量的样子

l_userIds VARCHAR2(4000) := null;
Run Code Online (Sandbox Code Playgroud)

这是我分配值的地方

l_userIds := getUserIds(deptId);  -- this returns a comma separated list
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是 -

select * from users_Table where user_id in (l_userIds);
Run Code Online (Sandbox Code Playgroud)

如果我运行此查询,我会收到INVALID NUMBER错误.

有人可以在这帮忙.

sql oracle plsql procedure

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

PL/SQL 调用过程

我编写了一个 PL/SQL 程序来更新 Employee 表的工资

create table Employee
(ID                 VARCHAR2(4 BYTE)         NOT NULL,
First_Name         VARCHAR2(10 BYTE),
   Last_Name          VARCHAR2(10 BYTE),
   Start_Date         DATE,
   End_Date           DATE,
    Salary             Number(8,2),
   City               VARCHAR2(10 BYTE),
    Description        VARCHAR2(15 BYTE)
)
 /
Run Code Online (Sandbox Code Playgroud)

这就是程序

CREATE OR REPLACE PROCEDURE update_employee_salary(
   p_factor IN NUMBER
    ) AS
    v_employee_count INTEGER;
    BEGIN
        UPDATE employee
       SET salary = salary * p_factor;
       COMMIT;
    EXCEPTION
     WHEN OTHERS THEN
       ROLLBACK;
   END update_employee_salary;
   /
Run Code Online (Sandbox Code Playgroud)

当我尝试调用该过程时

CALL update_employee_salary (1.5)
Run Code Online (Sandbox Code Playgroud)

甲骨文显示ORA-00900: invalid SQL statement

plsql stored-procedures procedure procedures oracle11g

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

Plsql分割字符串的最佳方法

从字符串中提取单词的最佳方法是什么?我已经做了一些事情,因为我找到了许多方法,但没有一个看起来"简单".

我们假设有一个名为'change_opening_hours'的程序.此过程具有名为"v_perioden"的时间范围字符串输入.

这个字符串看起来像:

'10:00-12:00'

'10:00-12:00 14:00-16:00'

'10:00-12:00 14:00-16:00 18:00-22:00'

现在我已经自己做了一些事情来从这个输入中抽出每一段时间.

  v_perioden   VARCHAR2(50) := '10:00-12:00 14:00-18:00 22:00-24:00';
  ...
  -- loop though time-periode depeningd
  -- on amount of spaces
  FOR i IN 0..REGEXP_COUNT(v_perioden, ' ') LOOP
    -- first period
    IF i = 0 THEN DBMS_OUTPUT.PUT_LINE(SUBSTR(v_perioden, 0, 11));
    -- second period
    ELSIF i = 1 THEN DBMS_OUTPUT.PUT_LINE(SUBSTR(v_perioden, 13, 11));
    --thirt period
    ELSIF i = 2 THEN DBMS_OUTPUT.PUT_LINE(SUBSTR(v_perioden, 25, 11));
    END IF;
  END LOOP;
Run Code Online (Sandbox Code Playgroud)

输出:

10:00-12:00
14:00-18:00
22:00-24:00
Run Code Online (Sandbox Code Playgroud)

现在这种方式工作正常,但它不是那么有能力.我试图找出如何从空间中的字符串中提取单词,但这并没有成功.

sql oracle plsql

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