我正在使用Laravel 5.2,我试图用laravel雄辩来执行sql查询。Oracle不理解Laravel的SQL查询
但Oracle不理解laravel查询。
这里是Laravel代码:
public function postLogincheck(Request $request){
$rules = array(
'name' => 'required|min:3',
'password' => 'required|alphaNum|min:3'
);
$messages = array(
'required'=>':attribute alanı gereklidir.',
'min'=>':attribute alanına en az :min karakter girmelisiniz',
'alphaNum'=>':attribute alanına alfanümerik karakterler girebilirsiniz'
);
$validator = Validator::make(Input::all(), $rules,$messages);
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
if (Auth::attempt(array('name' => $request->name, 'password' => $request->password))) {
flash()->success('Giriş başarılı');
return Redirect::to('/');
}
flash()->error('Giriş başarısız');
return Redirect::to('/login');
}
}
这种方法检查login.And用户laravel转换登录查询是这样的:
select * from (select * from ReportUsers where upper(name) = upper(tsim)) where rownum = 1
但甲骨文预计此查询:
select * from (select * from "ReportUsers" where upper("name") = upper('tsim')) where rownum = 1
我正在使用yajra laravel-oci8 connector来连接Oracle DB。
而且我得到这个问题的这个错误的原因:
Error Code : 942
Error Message : ORA-00942: tablo veya görüntü mevcut degil
Position : 29
Statement : select * from (select * from ReportUsers where upper(name) = upper(:p0)) where rownum = 1
Bindings : [tsim,tsim]
(SQL: select * from (select * from ReportUsers where upper(name) = upper(tsim)) where rownum = 1)
我怎样才能得到这个问题?
感谢
你确定? SQL非常标准化,我不再和Oracle一起工作,但我永远不会记得引用表或列的名称。你的错误信息是什么? – Devon
@Devon如果将表/列名称定义为区分大小写,则必须重新引用它们。一般来说,这是一个完整的PITA! – Boneist
@Devon是的,我确定。我编辑了这个问题以查看错误消息。 – kodcu