注:我不能改變我想要一個字符存儲到具有與號碼數據類型列的表列插入字符爲數字數據類型列
的數據類型。
我發現的工作是將字符值轉換爲ASCII,並從數據庫中檢索時將其轉換回字符。
我使用了幾個函數ASCII和ASCIISTR,但這些函數的限制是它們只轉換字符串的第一個字符。
所以就用傾卸功能
select dump('Puneet_kushwah1') from dual;
結果:典型值= 96長度= 15:80,117,110,101,101,116,95,107,117,115,104,119,97,104,49
此功能是給所有的字符的ASCII值。然後我執行以下查詢
select replace(substr((DUMP('Puneet_kushwah1')),(instr(DUMP('Puneet_kushwah1'),':')+2)),',',' ') from dual;
結果:80 117 110 101 101 116 95 107 117 115 104 119 97 104 49
然後我使用的特殊字符,以填補空間,這樣我可以取代它同時從數據庫中檢索。
select replace(substr((DUMP('Puneet_kushwah1')),(instr(DUMP('Puneet_kushwah1'),':')+2)),',','040') from dual;
Result: 80040117040110040101040101040116040950401070401170401150401040401190409704010404049
表定義:
create table test (no number);
然後我插入它到表
INSERT into test SELECT replace(substr((DUMP('Puneet_kushwah1')),(instr(DUMP('Puneet_kushwah1'),':')+2)),',','040') from dual;
問題1: 當我執行
select * from test;
我得到
結果:8.004011704011E82
我想它只是轉換成數字。完全一樣,我插入。
問題2:
,然後當我執行選中我希望它返回的確切字符串。
請幫我試了很多功能。
在此先感謝。
你想要做什麼似乎很反常。只需將該列聲明爲數據的適當類型即可。 –
轉換爲數字有什麼意義? –
你有麻煩了,如果你的角色可能包含一個左括號是十進制40 –