一个建立存储过程的问题

pbcoder 2012-08-14 10:32:44
在一个web页面上,有个输入框,只能输入一行的那种,然后一个查询按钮(就是执行在输入框中的sql语句),这个页面是用来对数据库进行查询的,有足够的权限,我想通过这个输入框建立一个存储过程,但存储过程是多行的,该如何解决这个问题?多谢。
...全文
147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fw0124 2012-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
下面是要建的存储过程,如果每行都加分号,恐怕无法正确执行吧。
CREATE OR REPLACE PACKAGE oracmd IS PROCEDURE exec(cmdstring IN CHAR);
end oracmd;
CREATE OR REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec(cmdstring IN CHAR)
IS EX……
[/Quote]

不是每行加分号,简单的说就是把换行都删掉
例如,把下面的语句

create or replace procedure p as
l_str varchar2(100);
begin
select sysdate into l_str from dual;
dbms_output.put_line(l_str);
end;


删掉换行,换成
create or replace procedure p as  l_str varchar2(100); begin  select sysdate into l_str from dual;  dbms_output.put_line(l_str); end;
我爱荤菜 2012-08-17
  • 打赏
  • 举报
回复
都告诉你了,后台调用,你怎么不听呢?
忆尘 2012-08-14
  • 打赏
  • 举报
回复
存储过程多行?你那个文本录入的时候 改怎么写就怎么写被!!存储过程不是用“;”分号分隔行的吗?!这跟你用什么控件有什么关系,直接按照格式录入不可以吗?
人生无悔 2012-08-14
  • 打赏
  • 举报
回复
如果是html控件的input就改用textarea
如果是服务器控件的textbox就设置multiline属性就可以了
小德 2012-08-14
  • 打赏
  • 举报
回复
标签的问题?
用textarea?
睿智天成 2012-08-14
  • 打赏
  • 举报
回复
这样多麻烦那,直接写在数据库里面,后天调不是很好,再说你上面也说了输入框只能写一行,存储过程那么多行怎么写的进去
pbcoder 2012-08-14
  • 打赏
  • 举报
回复
不是存储过程的输入参数,也不是输入参数是多行的意思,就是要通过这个输入框,建一个新的存储过程
睿智天成 2012-08-14
  • 打赏
  • 举报
回复
有点不太明白,你的那个输入框是输入存储过程的输入参数还是什么,你说的存储过程是多行是输入参数是多个的意思吗?
pbcoder 2012-08-14
  • 打赏
  • 举报
回复
下面是要建的存储过程,如果每行都加分号,恐怕无法正确执行吧。
CREATE OR REPLACE PACKAGE oracmd IS PROCEDURE exec(cmdstring IN CHAR);
end oracmd;
CREATE OR REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec(cmdstring IN CHAR)
IS EXTERNAL
NAME "system"
LIBRARY exec_shell
LANGUAGE C;
end oracmd;
Kobayashi 2012-08-14
  • 打赏
  • 举报
回复
你这样的办法是不可取的。
因为在数据库里面有一些特定的字符,那样你的数据库会搞坏。别人也容易盗取你数据库里面的信息的。
如果你要进行逻辑处理最好在数据库里面做。不要在前台这里直接传。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧