Come affermato da APC, non è disponibile alcuna funzionalità integrata. Ma è possibile utilizzare il WolframAlpha API da PL/SQL:
declare
v_equation varchar2(32767) :=
'(3.5/(1+x))+(3.5/(1+x)^2)+(3.5/(1+x)^3)+(3.5/(1+x)^4)+(100/(1+x)^4)=101.55';
v_escaped_url varchar2(32767);
v_uri httpuritype;
v_xml xmltype;
v_count number := 1;
begin
--Escape the URL.
--I used chr(38) for ampersand, in case your IDE think it's a substitution variable
v_escaped_url :=
'http://api.wolframalpha.com/v2/query?appid=EQGHLV-UYUEYY9ARU'||chr(38)||'input='
||utl_url.escape(v_equation, escape_reserved_chars => true)
||chr(38)||'format=plaintext';
--Create an HTTPURIType, and get the XML
v_uri := httpuritype.createUri(v_escaped_url);
v_xml := v_uri.getXML;
--Complex solutions
while v_xml.existsNode('/queryresult/pod[@title="Complex solutions"]/subpod['||v_count||']') = 1 loop
dbms_output.put_line(v_xml.extract('/queryresult/pod[@title="Complex solutions"]/subpod['||v_count||']/plaintext/text()').getStringVal());
v_count := v_count + 1;
end loop;
--Real solutions
v_count := 1;
while v_xml.existsNode('/queryresult/pod[@title="Real solutions"]/subpod['||v_count||']') = 1 loop
dbms_output.put_line(v_xml.extract('/queryresult/pod[@title="Real solutions"]/subpod['||v_count||']/plaintext/text()').getStringVal());
v_count := v_count + 1;
end loop;
end;
/
Risultati:
x = -1.00006-0.996229 i
x = -1.00006+0.996229 i
x = -1.99623
x = 0.0308219
Ci sono un sacco di potenziali aspetti negativi di questo approccio. Sarà molto lento e l'API non è gratuita. Il mio esempio funziona perché ho utilizzato il mio appid per sviluppatori gratuito, ma è valido solo per un numero limitato di chiamate.
fonte
2013-02-09 05:37:26
Suppongo, dal momento che stai usando SQL, che il database fornirà il valore di 'x', è corretto? –
No, in realtà intendo scoprire quale sia il valore di x xD –
se non è una funzione incorporata, si dovrebbe usare la forza bruta o scrivere alcune funzioni personalizzate. A seconda di cosa vuoi fare, cercherò di usare Mathematica (http://www.wolfram.com/mathematica) – tbone