标签: plsql

插入序列和SELECT

我正在尝试插入一个表,其中ID是序列中的下一个,其他一些值是从表中提取的.我知道这不起作用:

INSERT INTO ORDERS(order_id, foo1, foo2, foo3
VALUES(SEQUENCE_ORDERS.nextval,(SELECT foo1, foo2, foo3
                                FROM bar
                                WHERE X = Y))
Run Code Online (Sandbox Code Playgroud)

我刚试过,而且我得到了"没有足够的价值"错误.

我想知道正确的语法是什么让它工作.我在Oracle DB中使用PLSQL(我正在编写的程序的一部分).

我知道选择不应该在VALUES()内,但我如何添加序列?我能想到的唯一选择是插入的触发器,但我宁愿不必这样做.

编辑:谢谢大家,正如我想的那样,每个人都发布了.不知道在选择中有序列是可以的.

sql oracle plsql insert sequence

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

在sql语句中使用@或声明变量?

有没有人告诉我在sql语句中特别是在sql查询...... thnx中为变量声明变量时使用@是什么用的.

sql plsql stored-procedures

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

需要正则表达式来提取字符串中的第5到第8个字符

需要UNIX正则表达式来提取从4到8的字母.

例如:文件15870712.iis如果我们想提取第3个数字,我们可以给'^([0-9] [0-9] [0-9])'> 158

我需要第5个6th 7th和8th chara.> 0712

regex unix plsql

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

交互式PL/SQL脚本

如何编写接受用户输入的PL/SQL脚本,如下所示?

1:输出客户

2:输出员工

3:输出交易

输入您的选项(1/2/3):

谢谢Pradeep

oracle plsql oracle10g

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

将一列复制到表中的另一列

我有一张桌子

ID | COUNTRY | ORIGIN
1  | INDIA    |
2  | SPAIN    |
3  |  UK     |
Run Code Online (Sandbox Code Playgroud)

我将数据从列Country复制到ORIGIN列.我该怎么做 请帮忙.

sql plsql oracle11g

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

编写存储过程以进行查找

在此输入图像描述

请帮助我摆脱这种情况

我必须创建一个函数来检索给定员工的经理名称.(我试图加入emp表来实现这一点,但不确定.)另外,我需要编写一个SQL select语句,该语句使用该函数生成员工编号和名称列表以及他们的经理名称

谢谢

oracle plsql stored-procedures

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

如何在sql中循环?

我不想使用"loop"相关的关键字,如何在oracle中使用基本的sql命令实现循环?
我有两张桌子:

A:  
ID, Color    
B,   
ID, AID, Type  
Run Code Online (Sandbox Code Playgroud)

我想循环B中的所有记录,如果ID = AID,则设置A.Color = B.Type
提前谢谢!

oracle plsql

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

使用LIMIT子句批量收集到PL/SQL中的嵌套表中

正如标题所说,如何使用LIMIT子句批量收集到嵌套表中?在以下示例中,cur_data是一个嵌套表,在随后的BULK COLLECT中被覆盖.我看到EXTEND用于向嵌套表添加数据.有没有办法和BULIK COLLECT做类似的事情?

  OPEN cur;
  LOOP
      FETCH cur bulk collect INTO cur_data LIMIT 500;
      EXIT WHEN cur_data%COUNT=0;
  END LOOP;
  CLOSE cur;
  /*Data gets overwritten with empty cursor--> No data in cur_data here*/


  OPEN cur;
  FETCH cur bulk collect INTO cur_data;
  CLOSE cur;
  /*No Problems--> All data fetched into cur_data */
Run Code Online (Sandbox Code Playgroud)

提前致谢.

sql oracle plsql

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

pl/sql从数字转换为字符串

我需要在不使用内置函数的情况下将数字转换为pl/sql中的字符串,我们应该使用字符串/模块操作.例如,如果输入是123,那么输出应该是一百二十三可以任何人给我关于这个的建议吗?

oracle plsql plsqldeveloper

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

获取错误"ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小"

我有一个下面的包,它给出了错误

ORA-06502: PL/SQL: numeric or value error: character string buffer too small 
Run Code Online (Sandbox Code Playgroud)

请告诉我这里出了什么问题.

CREATE OR REPLACE PACKAGE BODY PKG_H
IS

    PROCEDURE PROC_SUBMIT_H
     (
        Pout_Rqst_Id                  OUT     NVARCHAR2,                    
        Pout_err_cd                   OUT     VARCHAR2,
        Pout_err_msg                  OUT     VARCHAR2,
        Pin_Rqst_Type_Id              IN      NUMBER,         
        Pin_Attachment                IN      NVARCHAR2,
        Pin_Brand_Id                  IN      NVARCHAR2,
        Pin_Prop_Id                   IN      NVARCHAR2,
    --    Pin_Htl_Stat_Rqst_Typ_ID      IN      NUMBER,
        Pin_Orcl_Acct_Num             IN      NVARCHAR2, -- NUMBER, /* Changed on 22.09.2011,as stated by FIS Team  */
        Pin_ORCL_User_Name            IN      NVARCHAR2,
        Pin_Rstn_Id                   IN      NUMBER,
        Pin_Rstn_Name                 IN      NVARCHAR2,
        Pin_Rstn_Start_Date           IN      DATE,
        Pin_Rstn_End_Date             IN      DATE,
      --  Pin_Change_Type_Ind           IN …
Run Code Online (Sandbox Code Playgroud)

oracle plsql ora-06502

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