Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 创建一个无参数过程_Sql_Oracle_Stored Procedures - Fatal编程技术网

Sql 创建一个无参数过程

Sql 创建一个无参数过程,sql,oracle,stored-procedures,Sql,Oracle,Stored Procedures,我试图创建一个无参数过程,用于从表中获取列并对其进行一些修改,然后将其粘贴到另一个表中。但我得到了以下错误: 程序演示已编译 LINE/COL ERROR --------- ------------------------------------------------------------- 4/2 PL/SQL: SQL Statement ignored 8/10 PLS-00403: expression 'NET.NETSALARY' cannot be u

我试图创建一个无参数过程,用于从表中获取列并对其进行一些修改,然后将其粘贴到另一个表中。但我得到了以下错误: 程序演示已编译

LINE/COL  ERROR
--------- -------------------------------------------------------------
4/2       PL/SQL: SQL Statement ignored
8/10      PLS-00403: expression 'NET.NETSALARY' cannot be used as an INTO-target of a SELECT/FETCH statement
8/24      PL/SQL: ORA-00904: : invalid identifier
错误:检查编译器日志 我在sql中使用的代码是:

    create or replace procedure "DEMO" 
    as 
    begin 
        case when comm is null then 0.9*grosssalary 
        when comm<500 then 0.85*grosssalary 
        else 0.8*grosssalary end 
        into net.netsalary from (select salary+comm as grossSalary,comm from 
        employee) ;

         end ;
          /
我正在尝试将数据插入到表net的netsalary列中。 请提一下我哪里出错了? 提前感谢您。

语法是

CREATE OR REPLACE PROCEDURE demo
AS
BEGIN
   INSERT INTO net (netsalary)
      SELECT CASE
                WHEN comm IS NULL THEN 0.9 * grosssalary
                WHEN comm < 500 THEN 0.85 * grosssalary
                ELSE 0.8 * grosssalary
             END
        FROM (SELECT salary + comm AS grossSalary, comm FROM employee);
END;
但这不会有多大好处。插入的行数与employee表中的行数一样多,但插入的只是netsalary值—您甚至不知道它属于谁

如果不知道表的描述,很难猜测您真正想要做什么

插入可能是缺少员工编号或任何列名称 使现代化那是完全不同的命令
如果这是Oracle的问题,为什么要标记MySQL和SQL Server?垃圾邮件标签将为您赢得否决票。谢谢您的帮助。是的,你说得对,关于桌子的描述。但是为了示例目的,我只为net表创建了一列,即.netsalary。