Búsqueda de datos de una tabla mediante un procedimiento almacenado en Oracle al pasar el nombre de tablete como un parámetro -- racle campo con plsql campo con oracle9i campo con ora-06512 campo con ora-01756 camp Relacionados El problema

Searching data from a table using stored procedure in oracle by passing tablename as a parameter


0
vote

problema

Español

Este procedimiento no funciona correctamente.

  create or replace procedure bank_search_sp ( p_tablename in varchar2, p_searchname in varchar2, p_bankcode out varchar2, p_bankname out varchar2, p_dist_code out number ) as v_tem varchar2(5000); begin v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||''; execute immediate v_tem into p_bankcode,p_bankname,p_dist_code using p_searchname ; commit; end bank_search_sp;   

Se está creando el procedimiento, pero no sé qué sucede realmente cuando se ejecutó, este es el error que se muestra

 ORA-01756: Cadena citada no terminada correctamente ORA-06512: en "Pensions.bank_search_sp", línea 14 ORA-06512: en la línea 1 
Original en ingles

This procedure is not working properly.

create or replace procedure bank_search_sp ( p_tablename in varchar2, p_searchname in varchar2, p_bankcode out varchar2, p_bankname out varchar2, p_dist_code out number ) as v_tem varchar2(5000); begin v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||''; execute immediate v_tem into p_bankcode,p_bankname,p_dist_code using p_searchname ; commit; end bank_search_sp; 

the Procedure is getting created but i dont know what actually happens when it was executed ,This is the error shown

 ORA-01756: quoted string not properly terminated ORA-06512: at "PENSIONS.BANK_SEARCH_SP", line 14 ORA-06512: at line 1  
              

Lista de respuestas

3
 
vote

Faltan comas finales de esta línea:

  v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||'''';   

Observe las 4 comas al final del fragmento de cadena. El primero abre la cadena, la última se cierra, los dos medios insertarán una sola coma que será la coma de cierre para la expresión de búsqueda).

La función UPPER() no es necesaria; Oracle no le importa la carcasa de los nombres de los objetos.

No estoy seguro de si tener varias tablas con la misma estructura es la mejor solución. ¿No sería mejor tener una tabla solo con una columna indexada que indique la diferencia entre los bancos?

 

Trailing commas are missing from this line:

v_tem :='select bankcode,bankname,dist_code from ' || UPPER (p_tablename) || ' where bankname like '''|| p_searchname||''''; 

Notice the 4 commas at the end of the string fragment. The first opens the string, the last closes it, the middle two insert a single comma that will be the closing comma for the search expression).

The UPPER() function is not necessary; Oracle does not care the casing of the object names.

I am not sure if having multiple tables with the same structure is the best solution. Would not it be better to have one table only with an indexed column indicating the difference between banks?

 
 

Relacionados problema

0  Búsqueda de datos de una tabla mediante un procedimiento almacenado en Oracle al pasar el nombre de tablete como un parámetro  ( Searching data from a table using stored procedure in oracle by passing tablenam ) 
Este procedimiento no funciona correctamente. create or replace procedure bank_search_sp ( p_tablename in varchar2, p_searchname in varchar2, p_bankcode ou...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos