有关创建过程的数据库帮助

您好,我正在尝试使用Oracle My SQL Developer创建一个过程

这是我的桌子

CREATE TABLE Product(
    ProductID int,ProductName varchar2(100),ProductFinish varchar2(100),ProductStandardPrice int,ProductLineID int,PRIMARY KEY (ProductID));

要插入的数据

    INSERT INTO Product (ProductID,ProductName,ProductFinish,ProductStandardPrice,ProductLineID) VALUES (1,'End Table','Cherry',175,1);
INSERT INTO Product (ProductID,ProductLineID) VALUES (2,'Coffee Table','Natural Ash',200,2);
INSERT INTO Product (ProductID,ProductLineID) VALUES (3,'Computer Desk',375,ProductLineID) VALUES (4,'Entertainment Center','Natural Maple',650,3);
INSERT INTO Product (ProductID,ProductLineID) VALUES (5,'Writers Desk',325,ProductLineID) VALUES (6,'8-Drawer Desk','White Ash',750,ProductLineID) VALUES (7,'Dining Table',800,ProductLineID) VALUES (8,'Walnut',250,3);

程序正在尝试创建

CREATE PROCEDURE ProductLinesale
AS
SELECT *,CASE WHEN ProductStandardPrice >= 400 THEN (ProductStandardPrice * 0.9)
ELSE (ProductStandardPrice * 0.85)
END AS SalePrice
FROM product
GO;

EXEC ProductLinesale;

选择时* 我收到那个错误。您能提供帮助吗?我还是这个新手。

编辑:建议的程序有效,但是,我仍然很困惑。 该程序处于无效状态,因此我无法调用它,并且 我试图通过Netbeans从JSP访问数据库。

原谅我的许多错误,这是我从Netbeans获得的代码

<%@ page import = "java.sql.*"%>
<%@ page import = "java.io.*"%>
<% Class.forName("oracle.jdbc.driver.OracleDriver");%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>JSP Page connected successfully!</h1>
        <%

            String url = "jdbc:oracle:thin:@129.7.240.3:1521:ORCL";

            Connection basic = DriverManager.getconnection(url,"myname","myname#");

            Statement statement = basic.createStatement();
            ResultSet result = statement.executeQuery("SELECT * FROM myname.PRODUCT");

        %>


        <table width="95%" border="0" cellspacing="1" cellpadding="5" align="center" bgcolor="#999999">
            <TR>
                <TH bgcolor='#DAA520'> <font size='2'/>ProductID</TH>
                <TH bgcolor='#DAA520'> <font size='2'/>ProductNAME</TH>
                <TH bgcolor='#DAA520'> <font size='2'/>ProductFINISH</TH>
                <TH bgcolor='#DAA520'> <font size='2'/>ProductSTANDARDPRICE</TH>
                <TH bgcolor='#DAA520'> <font size='2'/>ProductLINEID</TH>
            <TR>
                <% while (result.next()) {%>
            <TR>
                <TD> <font size='2'/><center><%= result.getString(1)%></center<>/TD> 
                call ProductLinesale();
        </TR>

        <% }%>
    </table>
    <h1>Table supposed to be above this<h1>
</body>
</html>

非常感谢

xxxcs001 回答:有关创建过程的数据库帮助

您创建过程的语法不适用于MySQL。您需要指示参数(在您的情况下为无),并删除AS。由于您只有一条语句,因此您不必} BEGINEND包围它,但是我将它们包括在内,以防将来您扩展该过程。请注意,取决于您输入该过程的环境,您可能需要也可能不需要DELIMITER语句。

DELIMITER //
CREATE PROCEDURE ProductLineSale ()
BEGIN
  SELECT *,CASE WHEN ProductStandardPrice >= 400 THEN (ProductStandardPrice * 0.9)
              ELSE (ProductStandardPrice * 0.85)
         END AS SalePrice
  FROM Product;
END
//
DELIMITER ;

要运行该过程,请使用CALL语句:

CALL ProductLineSale()

输出示例数据:

ProductID   ProductName     ProductFinish   ProductStandardPrice    ProductLineId   SalePrice
1           End Table       Cherry          175                     1               148.75
2           Coffee Table    Natural Ash     200                     2               170.00
3           Computer Desk   Natural Ash     375                     2               318.75
4           Entertainment   Natural Maple   650                     3               585.0
5           Writers Desk    Cherry          325                     1               276.25
6           8-Drawer Desk   White Ash       750                     2               675.0
7           Dining Table    Natural Ash     800                     2               720.0
8           Computer Desk   Walnut          250                     3               212.50

Demo on dbfiddle

,

不,实际上我要执行的过程是针对MySQL Developer中的表。我将其用于任务,在该任务上我在表上运行一个过程以计算销售总额。然后,我将继续使用Netbeans在JSP上显示该表。我被某种方式卡住了,但是我能够通过它。再次感谢您的帮助。

本文链接:https://www.f2er.com/3169750.html

大家都在问