Oracle SQL Developer'da 'trinidad & tobago' ile değişken ikamelerinden nasıl kaçınılır


111

Oracle SQL Developer 2.1'de bu ifadeyi yürütmeye çalıştığımda, TOBAGO için bir değiştirme değeri isteyen bir "İkame Değişkenini Girin" iletişim kutusu açılır ,

update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';

İfadenin amacını karartan chr(38)ya u'trinidad \0026 tobago'da başvurmadan bundan nasıl kaçınabilirim ?


1
Bu garip, tam olarak SQL geliştirici 2.1'de olduğu gibi bir sorgu çalıştırmaya çalıştığımda yedek değişken penceresini almadım mı? (Ve benim tanımlamalarım kesinlikle açık olarak ayarlandı)
wasatz

Bu soru bana çok yardımcı oldu.
Oh Chin Boon

Yanıtlar:


192

Bunu sorgudan önce arayın:

set define off;

Alternatif olarak, hacky:

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';

Gönderen Ayarlama SQL * Plus :

SET DEFINE OFF, ikame değişkenlerini değerleriyle değiştirmek için komutların ayrıştırılmasını devre dışı bırakır.


9
(Else) ne yapar set define off;?
Xonatron

15

SQL * Plus'ta SET DEFINE ?betiğin en üstüne koymak normalde bunu çözecektir. Oracle SQL Developer için de işe yarayabilir.


2
TANIMLA AYARLA? SQL Developer 2.1'deki değişken değiştirme davranışını bastırır. Nick SET DEFINE OFF'un da belirttiği gibi çalışır.
Janek Bogucki

set tanımla çalışıyor ama DBA onu kullanmaya izin vermiyor bazen nedenini bilmiyorum
nikhil sugandh

1

bu CHAR olmadan istediğiniz şekilde çalışacaktır (38):

update t set country = 'Trinidad and Tobago' where country = 'trinidad & '|| 'tobago';

create table table99(col1 varchar(40));
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
SELECT * FROM table99;

update table99 set col1 = 'Trinidad and Tobago' where col1 = 'Trinidad &'||'  Tobago';

Sorum, kullanmadan bunun nasıl yapılabileceğiydi chr(38).
Janek Bogucki

@JanekBogucki CHAR (38) kullanmadan şimdi düzeltin
nikhil sugandh

Zaten yeşil işaretli cevabınız olduğundan size farklı bir cevap verdim, ancak siz olumsuz oy verdiniz
nikhil sugandh

Dostum benim için nasıl bir ıstırabı çözdüğünüzü hayal bile edemezsiniz, sql geliştiricisi bir script çalıştırdığınızda set define off'u kabul etmiyor. Bu benim için çözüm
BrokenFrog

-3

Ben de bununla ilgili bazı sorunlar yaşıyordum. Her DB ile bağlantı kurmaya çalıştığımda bir şeyler başlıyordu ..

Benim için işe yarayan şey, yapılandırmış olabileceğiniz herhangi bir başlangıç ​​komut dosyasını kaldırmaktı!

yani Tools>Preferences...>Databaseve "Bağlantı başlangıç ​​komut dosyası için dosya adı" etiketli metin kutusunda sahip olduğunuz tüm dosya yollarını kaldırın!


-3

taramayı kapatın; Yukarıdaki komut da çalışıyor.


Bu soruya bir cevap vermiyor. Bir yazarı eleştirmek veya açıklama istemek için, gönderisinin altına bir yorum bırakın - kendi gönderilerinize her zaman yorum yapabilirsiniz ve yeterli itibar kazandıktan sonra herhangi bir gönderi hakkında yorum yapabilirsiniz. İlgili ancak farklı bir sorunuz varsa, bağlam sağlamaya yardımcı olacaksa, buna referans veren yeni bir soru sorun.
Rohan Khude
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.