Я пытаюсь сделать процедуру, которая будет принимать идентификатор сотрудника как входной файл и получить всю строку с 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? –
Вам нужно выбрать 'in' что-то. –
На самом деле я новичок в PL/SQL, поэтому сам изучаю. Я запутался в том, следует ли использовать функцию или процедуру для извлечения целой строки? , а так как я предложил мне что-то выбрать, я не знаю, как это сделать, потому что я пытался использовать «dual», он не позволяет – Gaurav