简单的oracle存储过程
1、 oracle 存储过程以及 asp.NET 中调用存储过程,实现一个简单的登录功能,只是作为学习的,所以处理可能不太合理。 ① 在 PL/SQLDeveloper 中编写存储过程 新建 Procedures ,一个简单的登录检查存储过程代码如下: createorreplaceprocedureuser_login(s
1、oracle存储过程以及asp.NET中调用存储过程,实现一个简单的登录功能,只是作为学习的,所以处理可能不太合理。
① 在PL/SQL Developer中编写存储过程
新建Procedures,一个简单的登录检查存储过程代码如下:
create or replace procedure user_login(sname in nvarchar2 ,spassword in nvarchar2, ReturnValue out number)
is --变量声明
Rname nvarchar2(20);
Rpassword nvarchar2(50);
begin
ReturnValue :=0; --赋初值
select username into Rname from userinfo where username=sname;
if Rname is not null then
ReturnValue:=1;--用户名存在
select userpassword into Rpassword from userinfo where username=sname and userpassword=spassword;
if Rpassword is not null then
ReturnValue:=2;--登陆成功
else ReturnValue:=1;--用户名存在,密码不正确
return ;
end if;
else ReturnValue:=0;--用户不存在
end if;
exception
when no_data_found then
DBMS_OUTPUT.put_line('没有找到数据');
end;
② 在PL/SQL Developer的SQL窗口中调用存储过程
declare --变量声明
ReturnValue number(10);
begin
user_login('faith','faith',ReturnValue);
if ReturnValue=0 then
DBMS_OUTPUT.put_line('不存在此用户');
elsif ReturnValue=1 then
DBMS_OUTPUT.put_line('存在用户,但密码不正确');
else
DBMS_OUTPUT.put_line('登录成功!!!');
end if;
end;
③ 在VS2012中调用存储过程
在OracleHelper.cs文件中:
public static void iRunProc(string procName, OracleParameter[] paras)
{
OracleConnection conn=new OracleConnection(OracleHelper.strConn);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
OracleCommand cmd = new OracleCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
if (paras != null)
{
for (int i = 0; i
{
OracleParameter parameter = paras[i];
cmd.Parameters.Add(parameter);
}
}
int result = cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
}
DAL层的webtestDal.cs文件中
public static int loginByProc(string name,string password,string procName)
{
OracleParameter[] parameters ={
new OracleParameter("sname", OracleType.NVarChar, 20),
new OracleParameter("spassword", OracleType.NVarChar, 50),
new OracleParameter("ReturnValue", OracleType.Number, 10)
};
parameters[0].Value = name;
parameters[1].Value = password;
//parameters[2].Value = 0;
parameters[0].Direction = ParameterDirection.Input;
parameters[1].Direction = ParameterDirection.Input;
parameters[2].Direction = ParameterDirection.Output;
try
{
OracleHelper.iRunProc(procName, parameters);
int i = int.Parse(parameters[2].Value.ToString());
return i;
}
catch (Exception e)
{
throw e;
}
}
在BLL层的webtestBll.cs文件中
public static int loginByProc(string name, string password, string procName)
{
return webtestDal.loginByProc(name, password, procName);
}
在页面代码的登录按钮事件中
protected void btnSubmit_Click(object sender, EventArgs e)
{
string name = this.txtName.Text.Trim();
string password = this.txtPassword.Text.Trim();
//调用存储过程,判断是否登录成功
if (webtestBll.loginByProc(name, password, "user_login")==2)//存储过程输出2表示登录成功
{//登录成功,保存用户名和密码的cookie
HttpCookie mycookie = new HttpCookie("loginCookie");
mycookie.Values.Add("cname", name);
mycookie.Values.Add("cpassword", password);
mycookie.Expires = DateTime.Now.AddHours(4);//cookie的生命期
Response.AppendCookie(mycookie);
Response.Redirect("userinfo.aspx");
}
else if (webtestBll.loginByProc(name, password, "user_login") == 1)
{
// Response.Write("");
RegisterClientScriptBlock("msg", "<script>alert(\"密码错误!\");</script>");
}
else
RegisterClientScriptBlock("msg", "<script>alert(\"无法认证!\");</script>");
}
2、登录之后,传递cookie值
先获取登录界面的cookie值(代码如上)
将登录页面的cookie值传给跳转页面
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = webtestBll.getAll();
userInfoGrid.DataSource = dt;
if (dt != null)
userInfoGrid.DataBind();
HttpCookie mycookie = null;
if (Request.Cookies.Get("loginCookie") != null)
{//当用户登录了时,获取页面传来的cookie值
mycookie = Request.Cookies.Get("loginCookie");
this.txtLoginName.Text = mycookie.Values["cname"].ToString();
this.txtLoginPassword.Text = mycookie.Values["cpassword"].ToString();
}
else
{//cookie过期或者没登录
Response.Redirect("userLogin.aspx?errorMsg=您还没登陆,请先登陆!");
}
}
}

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Penyelesaian kepada Oracle tidak boleh dibuka termasuk: 1. Mulakan perkhidmatan pangkalan data; 2. Mulakan pendengar; 3. Periksa konflik pelabuhan; 4. Menetapkan pembolehubah persekitaran dengan betul; 5. Pastikan perisian firewall atau antivirus tidak menghalang sambungan; 6. Periksa sama ada pelayan ditutup; 7. Gunakan RMAN untuk memulihkan fail rasuah; 8. Periksa sama ada nama perkhidmatan TNS betul; 9. Periksa sambungan rangkaian; 10. Pasang semula perisian Oracle.

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

Apabila fail log Oracle penuh, penyelesaian berikut boleh diterima pakai: 1) fail log lama bersih; 2) meningkatkan saiz fail log; 3) meningkatkan kumpulan fail log; 4) menyediakan pengurusan log automatik; 5) mengukuhkan pangkalan data. Sebelum melaksanakan sebarang penyelesaian, adalah disyorkan untuk membuat sandaran pangkalan data untuk mengelakkan kehilangan data.

Membina Sistem Fail Teragih Hadoop (HDFS) pada sistem CentOS memerlukan pelbagai langkah. Artikel ini menyediakan panduan konfigurasi ringkas. 1. Sediakan untuk memasang JDK pada peringkat awal: Pasang JavadevelopmentKit (JDK) pada semua nod, dan versi mesti bersesuaian dengan Hadoop. Pakej pemasangan boleh dimuat turun dari laman web rasmi Oracle. Konfigurasi Pembolehubah Alam Sekitar: Edit /etc /Fail Profil, tetapkan pembolehubah persekitaran Java dan Hadoop, supaya sistem dapat mencari laluan pemasangan JDK dan Hadoop. 2. Konfigurasi Keselamatan: Log masuk tanpa kata laluan SSH untuk menjana kunci SSH: Gunakan perintah ssh-keygen pada setiap nod

Oracle bukan sahaja syarikat pangkalan data, tetapi juga pemimpin dalam pengkomputeran awan dan sistem ERP. 1. Oracle menyediakan penyelesaian yang komprehensif dari pangkalan data ke perkhidmatan awan dan sistem ERP. 2. Oraclecloud mencabar AWS dan Azure, menyediakan perkhidmatan IaaS, PaaS dan SaaS. 3. Sistem ERP Oracle seperti E-BusinessSuite dan FusionApplications membantu perusahaan mengoptimumkan operasi.

Untuk menghentikan pangkalan data Oracle, lakukan langkah -langkah berikut: 1. Sambungkan ke pangkalan data; 2. Shutdown segera; 3. Shutdown membatalkan sepenuhnya.

Pandangan Oracle boleh dieksport melalui utiliti EXP: log masuk ke pangkalan data Oracle. Mulakan utiliti EXP, menentukan nama paparan dan direktori eksport. Masukkan parameter eksport, termasuk mod sasaran, format fail, dan ruang meja. Mula mengeksport. Sahkan eksport menggunakan utiliti IMPDP.
