我正在嘗試創建一個過程,該過程將採用員工id作爲輸入並獲取包含7列的整行數據。但是,我創建了一個過程,但是當我運行它時,它會給出一個錯誤,指出「無效標識符」。請告訴我我做錯了什麼?如何在oracle 10g中創建一個過程來獲取整行
create or replace procedure getdetails (empid number)
is
stmt varchar2 (1000);
begin
stmt :='select * from myadmin where employe_id=empid';
execute immediate stmt;
end;
/
使用下面的語句執行
begin getdetails (5);
end;
package pack.java;
import pack.java.allrequestmodel;
import java.io.*;
import java.lang.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class allrequestcontrol extends TagSupport
{
HttpServletRequest request;
HttpServletResponse response;
String ss="";
String emp="";
public int doStartTag() throws JspException
{
request=(HttpServletRequest)pageContext.getRequest();
response=(HttpServletResponse)pageContext.getResponse();
return EVAL_PAGE;
}
public ResultSet check()
{
HttpSession mysession=request.getSession();
ss=(String)mysession.getAttribute("user");
mysession.setAttribute("user",ss);
JspWriter out=pageContext.getOut();
Connection con;
CallableStatement stmt;
ResultSet rs=null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex)
{
}
try
{
con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","gaurav","oracle");
stmt=con.prepareCall("call getdetails(?)");
stmt.setString(1,ss);
rs=stmt.executeQuery();
}
catch(SQLException ex)
{
}
return rs;
}
public int doEndTag() throws JspException
{
JspWriter out=pageContext.getOut();
ResultSet rs= check();
try
{
out.println("<table border=2>");
out.println("<tr>");
out.println("<th>EmployeId</th>");
out.println("<th>Supervisor</th>");
out.println("<th>Department</th>");
out.println("<th>PickDate.</th>");
out.println("<th>PickTime</th>");
out.println("<th>DropDate</th>");
out.println("<th>DropTime</th>");
out.println("<th>Status</th>");
out.println("<th></th>");
out.println("</tr>");
while(rs.next())
{
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getString(4)+"</td>");
out.println("<td>"+rs.getString(5)+"</td>");
out.println("<td>"+rs.getString(6)+"</td>");
out.println("<td>"+rs.getString(7)+"</td>");
out.println("<td>"+rs.getString(8)+"</td>");
out.println("<td><input type=radio name=radio value="+rs.getString(8)+"></td>");
out.println("</tr>");
}
emp=(String)request.getParameter("radio");
HttpSession mysession=request.getSession();
mysession.setAttribute("deleteemp",emp);
}
catch(Exception ex)
{
}
return super.doEndTag();
}
}
爲什麼使用動態SQL? –
你需要選擇「進入」某物。 –
其實我是新來的PL/SQL,所以我自學。我很困惑是否使用函數或過程來獲取整行? 和你建議我需要選擇的東西,我不知道如何去做,因爲我嘗試使用「雙」它不允許 – Gaurav