是不是选取某几个字段时,必须用select ...into ...,存储过程才有效?

nnlyc 2004-07-13 10:15:58
如题,Oracle8i,今天发现选取几个字段时,仅仅是select ...from...的话,总是Invalid,加了into 后就valid,怎么会这样呢?比如:

(plog_name in system.reg_member.login_name%TYPE,
ptruename out varchar2,
pjob out varchar2,
pemail out varchar2,
pphone out varchar2,
pfax out varchar2,
pm_phone out varchar2,
ppost out varchar2,
pcompname out varchar2,
pcompweb out varchar2,
pmaintrade out varchar2,
psale out varchar2,
pbuy out varchar2,
pcity out varchar2,
pstreet out varchar2
)
is
begin
select true_name,e_mail,phone,city_address,street_address,
fax,mobile_phone,post_code,company_name,job,main_trade,
buy_product,sale_product,company_homepage
into ptruename,pemail,pphone,pcity,pstreet,pfax,pm_phone,
ppost,pcompname,pjob,pmaintrade,pbuy,psale,pcompweb
from system.reg_member
where login_name=plog_name;
end get_companyinfo;

如果不写into的话就不行,就算是最简单的没有in、out参数的select * from table也是无效,郁闷:(
另外,如何取得这些out参数的值赋值给textbox?(asp.net,c#)
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnlyc 2004-07-13
  • 打赏
  • 举报
回复
补充说明一下:

只选取一条记录,我在调用存储过程后,在程序中怎么获得out参数的值?是不是textbox.text=包.过程.参数?我知道textbox.text=OracleDataReader.[col].tostring,但涉及到过程就不明白了,初学的菜鸟:(
jackjingsg 2004-07-13
  • 打赏
  • 举报
回复
如果仅仅是select操作而没有赋值就没有必要使用存储过程了
dinya2003 2004-07-13
  • 打赏
  • 举报
回复
这是oracle的语法,在过程内部将选出来的数据赋给变量的语法. 然后可以把变量赋给你的OUT参数.
LGQDUCKY 2004-07-13
  • 打赏
  • 举报
回复
这是简单的SELECT 语句呀!select col INTO var from tab
这是语法呀,如果是返回多个记录就要使用游标了

c#访问存储过程。
SqlCommand sampleCMD = new SqlCommand("Package.ProName", myConn);
sampleCMD.CommandType = CommandType.StoredProcedure;
...

myC
Dim myConnection As New OracleConnection(connectstring)
myConnection.Open()
Dim myCommand As New OracleCommand()
myCommand.Connection = myConnection
myCommand.CommandType = CommandType.StoredProcedure

myCommand.CommandText = "packagename.procedurename"

myCommand.Parameters.Add("CURSORname", OracleType.Cursor).Direction = ParameterDirection.Output

Dim myReader As OracleDataReader
myReader = myCommand.ExecuteReader()

ListBox2.DataSource = myReader
ListBox2.DataTextField = "PROJECTNAME"
ListBox2.DataBind()
ListBox2.SelectedIndex = 0

myReader.Close()
myConnection.Close()
myReader = Nothing
myConnection = Nothing

freddy2003 2004-07-13
  • 打赏
  • 举报
回复
select...into....是Oracle中的赋值语句
相当于SQL server中的
select 变量=值
一样

17,377

社区成员

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

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