我正在使用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