oracle中sql語句如何動態拼接

時間 2021-09-07 04:08:50

1樓:龍氏風采

sql code

--在儲存過程裡面完成唄

--例:

create or replace procedure yyp_cwdh(table_name varchar)

isstr_sql varchar2(400):='';

begin

str_sql:='select * from '||table_name||' where 1=1';

execute immediate st……

2樓:請叫我召哥

因為'x'||to_char(sysdate,'dd')=‘***x’這個條件不滿足,所以查詢不到資料。

'x'||to_char(sysdate,'dd')明顯不等於'***x',能查詢到資料就是怪事了。

如果你想查詢到資料,必須保證'x'||to_char(sysdate,'dd')的值等於'***x'

就拿今天來說'x'||to_char(sysdate,'dd')的值肯定是x24。

'***x'的值是為***x,不等於x24。肯定查詢不到資料。

你這個語句就跟

select name from a where 1>2這個語句的效果一樣。

如果你的***x表示你表中的一個欄位,比如x1,x2..x31,

如:select name from a where 'x'||to_char(sysdate,'dd')=x24;

你做關聯的是用你的欄位名,但是判斷取值的是時候,卻是取的x24這一列裡面的值。

如果x24這一列裡面有一列的值是x24,肯定查得出資料,如果沒有,肯定就查不出來,

你先確實有沒得x24這條資料記錄了來。。

3樓:射手幽靈伊

先定義一個串變數

c_sql := "select name from a where x"||to_char(sysdate,'dd') || " ='***x' "

oracle中sql語句中where子句可不可以動態新增

4樓:

不傳入,程式給個預設值

或者你根據 傳入引數 拼sql

5樓:學無止境分享無限

可以,執行的時候只執行給出的就可以

sql語句oracle和mysql中可以執行,sqlserver中不行

select count from cos mobilenumber aorder bya.createdate desc 這句的order by再sql中沒意義 select count 只返回一行一列,沒必要進行進行排序可以直接寫成 select count from cos mobilenum...

如何獲取oracle資料庫中sql語句的執行時間

rs s.executequery sql 到這一句,根本沒有fetch資料。整個時間應該是,到迴圈取完結果集為止。 杜爺1號 通過oracle執行計畫可以看到sql的執行時間。explain plan for select from table select from table dbms xpl...

如何用sql語句求oracle 資料庫所有表的行數

select table name,num rows from all tables where tablespace name whs12lt order by num rows desc 檢視表空間為whs12lt中的所有表及各表行數,注意表空間一定要區分大小寫,我的當時用了小寫的whs12lt...